iSql経由でInformixバージョン11.50.FC6を使用しています
ブロックの結果にCASE
仮想名を付けています。att_hrs
SELECT c.id,
CASE WHEN ( c.prog = 'UNDG'
AND (c.grd IN (SELECT DISTINCT grd FROM grd_table WHERE att_fctr = 1) OR (c.grd IN ('TR','W','LAB','WC')))
AND c.grd NOT IN ('WM')
AND c.stat NOT IN ('X','D'))
THEN CAST(SUM(c.hrs) AS CHAR(4))
ELSE 'ELSED (att)'
END att_hrs
FROM cw_rec c
WHERE c.id IN (SELECT DISTINCT id FROM stu_ids)
GROUP BY c.id
INTO TEMP cheese
WITH NO LOG;
これは私にエラーを与えます:
294: The column (att_hrs) must be in the GROUP BY list.
提案されたようにエラーを修正しようとしています:
SELECT c.id,
CASE WHEN ( c.prog = 'UNDG'
AND (c.grd IN (SELECT DISTINCT grd FROM grd_table WHERE att_fctr = 1) OR (c.grd IN ('TR','W','LAB','WC')))
AND c.grd NOT IN ('WM')
AND c.stat NOT IN ('X','D'))
THEN CAST(SUM(c.hrs) AS CHAR(4))
ELSE 'ELSED (att)'
END att_hrs
FROM cw_rec c
WHERE c.id IN (SELECT DISTINCT id FROM stu_ids)
GROUP BY c.id,
att_hrs
INTO TEMP cheese
WITH NO LOG;
次に、このエラーが表示されます:
217: Column (att_hrs) not found in any table in the query (or SLV is undefined).
att_hrs
パーティーに参加していないときは簡単に見つけられましGROUP BY
たが、今では突然、att_hrs
ソースで失われています.
これを回避できますか?
本当のエラーは何ですか &| ここで起こっていることの解決策と、それを修正するために何をする必要がありますか?
編集
RETの解決策を試してみ
GROUP BY 1,2,3...
たところ、次のエラーが発生しました。
321: Cannot group by aggregate column.