我有下表:
产品:
ID Type StockExists
01 Cellphone T
02 Cellphone F
03 Apparrel T
我希望count the number of items
使用现有股票,即StockExists='T'
行数。我正在执行查询;
Select count(StockExists)
From [Items] where StockExists='T'
但它总是返回1.正确的方法是什么?
修改
此外,如何执行另一个此类计数操作并将它们一起添加到一行,例如
Select count(StockExists)
From [Items] where StockExists='T'` and `Select count(Type)
From [Items] where Type='Cellphone'` ?
答案 0 :(得分:9)
SELECT
COUNT(*) As ExistCount
FROM
dbo.Items
WHERE
StockExists='T'
所以你的查询应该有效。
结果:
EXISTCOUNT
2
<强>更新强>
如何执行另一个这样的Count操作并将它们添加到一起 例如,一行,选择计数(StockExists)从[项目]在哪里 StockExists ='T'和选择计数(类型)来自[Items]其中 Type ='手机'?
您可以将SUM
与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
结果:
EXISTCOUNT CELLPHONECOUNT
2 2
答案 1 :(得分:1)
选择总和(字段=&#39;此&#39;然后1其他0结束时的情况)为总计 来自YourTable
答案 2 :(得分:0)
在使用CASE时,在如下所示的ELSE情况下最好使用NULL而不是0
SELECT
ExistCount = SUM(CASE WHEN StockExists='T' THEN 1 ELSE NULL END) ,
TotalCount = COUNT(ID)
FROM
dbo.Items