tblcount
-----------------------
no_req no_order no_grn
R001 D001 G001
R001
R001 D001 G001
R002 D002
R002 D002 G002
R003 D001 G001
R004 D003 G002
R004 D003 G002
R005 D003
R005 D003
R006 D004 G002
R006 D005 G003
R006 D007
R007 D007 G005
R007 D008 G006
我想用这样的标准来计算。 例如,从上表中可以得到3个来自no_req的R001数据,但只有2个来自no_order和no_grn,所以它不算数。它只会计算完整的数据。像这样的东西:
所以从上面的数据我可以得到计数结果= 3 我应该怎么做才能从上面的表中得到那个计数结果= 3
答案 0 :(得分:3)
试试这个:
SELECT COUNT(*)
FROM (
SELECT no_req
FROM tblcount
GROUP BY no_req
HAVING COUNT(*) = COUNT(CASE WHEN no_order <> '' THEN no_order END) AND
COUNT(*) = COUNT(CASE WHEN no_grn <> '' THEN no_grn END)) AS t
内部查询选择满足条件的任何no_req
组。外部查询只计算这些组的数量。
答案 1 :(得分:3)
简化@GiorgosBetsos logig:
SELECT COUNT(*)
FROM
(
SELECT no_req
FROM tblcount
GROUP BY no_req
HAVING -- check if both columns always contain data
COUNT(CASE WHEN no_order = '' OR no_grn = '' THEN 1 END) = 0
) AS t