0

の合計がReadyの合計に等しいかどうかをチェックし、True の場合は「Y」、FALSE の場合は「N」を配置する、という名前の列をクエリに追加しようとしています。CompleteTotal

これは、4つの列を生成する私のクエリです

 SELECT pc.Sub,
    SUM(CASE WHEN `SheetStatus` LIKE 'Complete' THEN 1 ELSE 0 END) AS 'Complete',
    SUM(CASE WHEN `SheetStatus` LIKE 'Not started' THEN 1 ELSE 0 END) AS 'Not Started',
    SUM(CASE WHEN `CheckSheet` LIKE '%' THEN 1 ELSE 0 END) AS 'Total'        
FROM `pc`
Group By pc.Sub WITH ROLLUP

可能であれば、余分な列を作成する方法がわかりません。よろしく

4

2 に答える 2

1

外側の SELECT を試す

SELECT `Complete`, 
       `Not Started`, 
       `Total`, 
       CASE WHEN `Complete` = `Total` THEN 'Y' ELSE 'N' END `Ready`
  FROM (
SELECT pc.Sub,
    SUM(CASE WHEN `SheetStatus` LIKE 'Complete' THEN 1 ELSE 0 END) AS `Complete`,
    SUM(CASE WHEN `SheetStatus` LIKE 'Not started' THEN 1 ELSE 0 END) AS `Not Started`,
    SUM(CASE WHEN `CheckSheet` LIKE '%' THEN 1 ELSE 0 END) AS `Total`        
FROM `pc`
GROUP BY pc.Sub WITH ROLLUP) t
于 2013-05-09T03:47:05.203 に答える
0

これを試して:

SELECT pc.Sub,
    SUM(IF(`SheetStatus`='Complete',1,0) AS 'Complete',
    SUM(IF(`SheetStatus`='Not started',1,0) AS 'Not Started',
    SUM(IF(`CheckSheet` LIKE '%',1,0) AS 'Total'
    IF(SUM(IF(`CheckSheet` LIKE '%',1,0) = SUM(IF(`SheetStatus`='Complete',1,0),"Y","N") AS Ready
FROM `pc`
Group By pc.Sub WITH ROLLUP
于 2013-05-09T03:48:53.663 に答える