這裏是我的SELECT查詢:甲骨文選擇幫助
SELECT
a.id_auto,
SUM(pozicane_dni * a.poplatok_denny + najazdene_km * a.poplatok_km) celkova_trzba
FROM Auta a
INNER JOIN (SELECT
id_auto,
(SUM(koniec_pozicania - zaciatok_pozicania)) pozicane_dni,
(SUM(najazdene_km)) najazdene_km,
zaloha
FROM Zakaznik GROUP BY id_auto) z
ON z.id_auto = a.id_auto
INNER JOIN (SELECT
id_auto,
poplatok_denny,
poplatok_km
FROM Auta_zaloha) az
ON az.id_auto = a.id_auto
GROUP BY a.id_auto;
但我發現了這個錯誤:
ORA-00979: not a GROUP BY expression
任何人都知道在哪裏可能是問題?我有點困惑。在我使用聚合函數SUM()的地方,我有GROUP BY子句。
編輯:
一兩件事,它停止工作,當我添加病例時,查詢:
SELECT
a.id_auto, a.poplatok_denny, a.poplatok_km,
CASE WHEN z.zaloha IS NULL THEN
(pozicane_dni * a.poplatok_denny + najazdene_km * a.poplatok_km)
ELSE
(pozicane_dni * az.poplatok_denny + najazdene_km * az.poplatok_km)
END
celkova_trzba
FROM Auta a
INNER JOIN (SELECT
id_auto,
(SUM(koniec_pozicania - zaciatok_pozicania)) pozicane_dni,
(SUM(najazdene_km)) najazdene_km,
zaloha
FROM Zakaznik GROUP BY id_auto, zaloha) z
ON z.id_auto = a.id_auto
INNER JOIN (SELECT
id_auto,
poplatok_denny,
poplatok_km
FROM Auta_zaloha) az
ON az.id_auto = a.id_auto
GROUP BY a.id_auto;
+1。不是那麼簡單嗎? :) – Guru 2009-10-29 11:50:14
還有一件事,它停止工作,當我添加CASE時,以查詢:( – 2009-10-29 11:59:28
同樣的問題:你需要聚合的表達式,例如像「SUM(CASE當......結束)celkova_trzba」,如果Oracle允許使用這樣的語法 – Heinzi 2009-10-29 13:25:46