2

次のクエリの実行中に「グループ関数の使用が無効です」というエラーが発生します。

Select id, faultdistribution, faulttype, faultseverity, 
SUM(IF (faultdistribution='crs', SUM(IF(faultdistribution='crs',1,0))*8, 0)+
IF (faultdistribution='configuration', SUM(IF(faultdistribution='configuration',1,0))* 6, 0)+
IF (faulttype='business' AND faultseverity='fatal', SUM(IF(faulttype='business' AND faultseverity='fatal',1,0))* 4, 0)+
IF (faulttype='business' AND faultseverity='major', SUM(IF(faulttype='business' AND faultseverity='major',1,0))* 2, 0)+
IF (faulttype='business' AND faultseverity='moderate', SUM(IF(faulttype='business' AND faultseverity='moderate',1,0))* 5, 0)+
IF (faulttype='business' AND faultseverity='minor', SUM(IF(faulttype='business' AND faultseverity='minor',1,0))* 3, 0)+
IF (faulttype='look & feel' AND faultseverity='fatal', SUM(IF(faulttype='look & feel' AND faultseverity='fatal',1,0))* 2, 0)+
IF (faulttype='look & feel' AND faultseverity='major', SUM(IF(faulttype='look & feel' AND faultseverity='major',1,0))* 1, 0))
FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed'

どこで私はそれを間違っていますか? 助けてください!

4

2 に答える 2

4

SUM()、COUNT()、AVG()、MIN()、MAX() などは、SELECT リストのすべての列で使用しない限り、GROUP BY を指定する必要がある集計関数です。

あなたの場合、クエリは下部に次を追加することで機能するはずです。

GROUP BY id, faultdistribution, faulttype, faultseverity

...しかし、あなたが持っている多くのネストされた IF から判断すると、これがあなたが探している出力を与えるかどうかは完全にはわかりません。

于 2013-10-07T10:42:45.600 に答える