2013-02-07 25 views
7

Tôi có bảng sau:Làm thế nào để đếm số hàng với dữ liệu cụ thể trong MSSQL

Items:

ID  Type  StockExists 
01  Cellphone T 
02  Cellphone F 
03  Apparrel T 

Tôi muốn count the number of items với cổ phiếu hiện có, ví dụ, số hàng với StockExists='T' . Tôi đã thực hiện truy vấn như;

Select count(StockExists) 
From [Items] where StockExists='T' 

nhưng luôn quay trở lại 1. Cách làm đúng cách là gì?

Edit:

Ngoài ra, làm thế nào để thực hiện một hoạt động Đếm như vậy và thêm chúng với nhau trong một hàng, ví dụ,

Select count(StockExists) 
From [Items] where StockExists='T'` and `Select count(Type) 
From [Items] where Type='Cellphone'` ? 
+0

Truy vấn của bạn trông ổn [DEMO] (http://sqlfiddle.com/#!6/c0e44/2) – Kaf

Trả lời

9
SELECT 
    COUNT(*) As ExistCount 
FROM 
    dbo.Items 
WHERE 
    StockExists='T' 

Vì vậy, câu hỏi của bạn nên làm việc.

Kết quả:

EXISTCOUNT 
    2 

Demo

Cập nhật

Làm thế nào để thực hiện một hoạt động Đếm như vậy và thêm chúng với nhau trong một hàng, ví dụ, Select count (StockExists) Từ [Mục] trong đó StockExists = 'T' và Chọn số đếm (Loại) Từ [Mục] trong đó Loại = 'Điện thoại di động'?

Bạn có thể sử dụng SUM với CASE:

SELECT 
    ExistCount = SUM(CASE WHEN StockExists='T' THEN 1 ELSE 0 END) , 
    CellphoneCount = SUM(CASE WHEN Type='Cellphone' THEN 1 ELSE 0 END) 
FROM 
    dbo.Items 

Kết quả:

EXISTCOUNT CELLPHONECOUNT 
    2    2 

Demo

+0

cảm ơn, hiện tại nó đang hoạt động. Tôi có thể làm gì để có được một số khác trên cùng một bảng với số liệu trước đó với một số tiêu chí khác nhau và hợp nhất hai số đếm trong một hàng duy nhất trong các cột khác nhau? –

+0

@TimSchemelter vui lòng xem chỉnh sửa. –

1

Chọn Sum (Trường hợp khi lĩnh vực = 'này' sau đó 1 khác 0 kết thúc) với tổng số từ YourTable

Các vấn đề liên quan