Hallo zusammen,

möchte in meinem Dialogprogramm dem Anwender die Möglichkeit anbieten, unter beliebligen Kumulationskritieren auszuwählen (auch Mehrfachauswahl gültig).

Hierzu habe ich sowohl die Select-Felder, als auch die Group by-Felder in case-Anweisungen gesetzt (group by habe ich von Select kopiert, so dass ich keine Felder vergesse, oder mich vertippe)
Leider erscheint nach jedem Versuch, eine Kumulation vorzunehmen der SQL-Code -122 (A SELECT STATEMENT WITH NO GROUP BY CLAUSE CONTAINS A COLUMN NAME AND A COLUMN FUNCTION IN THE SELECT CLAUSE OR A COLUMN NAME IS CONTAINED IN THE SELECT CLAUSE BUT NOT IN THE GROUP BY CLAUSE )

Da ich ja die kompletten Select-Felder - natürlich bis auf die Summierungen - in die Group by-Anweisung kopiert habe, kann ich mir diesen Fehler nicht erklären.

Anbei das ausgeführte Select-Statement.
Hinweis: Bei den aufgeführten Hostvariablen beginnend mit :IndKum... handelt es sich um Boolean-Variablen, die entsprechend der Wahl des Anwenders gefüllt sind.


PHP-Code:
Exec SQL
Insert into VOGIO
/WUVT0547
Select
case when :IndKumVb '1' or :IndKumKd '1' then 0 else vsman end,
case 
when :IndKumVb '1' or :IndKumKd '1' then vsvbnr else 0 end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.ana1 else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.ana2 else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.acoi else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.apla else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.aort else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.astr else ' ' end,
case 
when :IndKumKd '1' then vskdnr else 0 end,
case 
when :IndKumKd '1' then kdslst else 0 end,
case 
when :IndKumKd '1' then b.ana1 else ' ' end,
case 
when :IndKumKd '1' then b.ana2 else ' ' end,
case 
when :IndKumKd '1' or :IndKumLd '1' then b.acoi else ' ' end,
case 
when :IndKumKd '1' then b.apla else ' ' end,
case 
when :IndKumKd '1' then b.aort else ' ' end,
case 
when :IndKumKd '1' then b.astr else ' ' end,
case 
when :IndKumKd '1' then vskdgr else ' ' end,
case 
when :IndKumKd '1' then c.tabbez else ' ' end,
case 
when :IndKumKd '1' then kdslbr else ' ' end,
case 
when :IndKumKd '1' then d.tabbez else ' ' end,
case 
when :IndKumKd '1' then kdslpt else ' ' end,
case 
when :IndKumKd '1' or :IndKumVt '1' then vsvtr else 0 end,
case 
when :IndKumKd '1' or :IndKumVt '1' then e.tabbez else ' '
end,
case 
when :IndKumKd '1' then kdsbdw else ' ' end,
case 
when :IndKumKd '1' then kdfu1 else 0 end,
// Teilenr, Bez, Status, Eigen-/Fremdfertigung, Prod.EAN, Karton.EAN, Zolltarif-Nr.
case when :IndKumTn '1' then vstnr else ' ' end,
case 
when :IndKumTn '1' then imdsc else ' ' end,
case 
when :IndKumTn '1' then imsts else ' ' end,
case 
when :IndKumTn '1' then imcode else ' ' end,
case 
when :IndKumTn '1' then imrsv9 else ' ' end,
case 
when :IndKumTn '1' then imrsv0 else ' ' end,
case 
when :IndKumTn '1' then mi1swn else ' ' end,
// Preisgr, MarkenGruppe
case when :IndKumTn '1' or :IndKumPr '1' then vspgrg else ' ' end,
case 
when :IndKumTn '1' or :IndKumPr '1' then f.prbez else ' '
end,
case 
when :IndKumTn '1' then vsmagr else ' ' end,
case 
when :IndKumTn '1' then g.tabbez else ' ' end,
// MarkenHptGr, MarkeInd, Warengruppe
case when :IndKumTn '1' then mi1v22 else ' ' end,
case 
when :IndKumTn '1' then h.tabbez else ' ' end,
case 
when :IndKumTn '1' then vsmark else ' ' end,
case 
when :IndKumTn '1' then i.tabbez else ' ' end,
case 
when :IndKumTn '1' or :IndKumWG '1' then vsmrze else ' ' end,
case 
when :IndKumTn '1' or :IndKumWG '1' then j.tabbez else ' '
end,
// ProdHptGr, ProdGr
case when :IndKumTn '1' then vsprhg else ' ' end,
case 
when :IndKumTn '1' then p.tabbez else ' ' end,
case 
when :IndKumTn '1' or :IndKumPG '1' then vsprgr else ' ' end,
case 
when :IndKumTn '1' or :IndKumPG '1' then k.tabbez else ' '
end,
sum(vvimg3), sum(vvimg2), sum(vvimg1), sum(vvimg0),
sum(vviwg3), sum(vviwg2), sum(vviwg1), sum(vviwg0
From VOGIO/wuStatistik Left Outer Join DCWD/AADRNU a
on vsvbnr 
a.anum
Left Outer Join DCWD
/AADRNU b
on vskdnr 
b.anum
Left Outer Join VOGIO
/KUNDST00
on vskdnr 
kdnr
Left Outer Join VOGIO
/V#TAK100 c
on vskdgr c.tabinn
Left Outer Join VOGIO
/V#TABR00 d
on kdslbr d.tabinn
Left Outer Join VOGIO
/V#TAVT00 e
on vsvtr e.tabinn
Left Outer Join SIM400MFG
/FKITMSTR
on vstnr 
impn
Left Outer Join DCWD
/MITEM
on vstnr 
mi1mnr
Left Outer Join VOGIO
/V#TAP999 f
on kdslpt f.sort and vspgrg f.preisg
Left Outer Join VOGIO
/V#TAMG00 g
on vsmagr g.tabind
Left Outer Join VOGIO
/V#TAMH00 h
on mi1v22 h.tabind
Left Outer Join VOGIO
/V#TAMA00 i
on vsmark i.tabind
Left Outer Join VOGIO
/V#TAWG00 j
on vsmrze j.tabinz
Left Outer Join VOGIO
/V#TAPH00 p
on vsprhg p.tabind
Left Outer Join VOGIO
/V#TAPG00 k
on vsprgr k.tabind
Left Outer Join VOGIO
/V#TAPU00 l
on vsprug l.tabind
Left Outer Join VOGIO
/V#TAGB00 m
on vsgebi m.tabind
Left Outer Join VOGIO
/V#TATH00 n
on vsgeba n.tabind
Left Outer Join VOGIO
/V#TALI00 o
on mi1v19 o.tabinz
Where
Case When :ikdgr <> 0 Then :ikdgr Else vskdgr end vskdgr
And Case When :ikdbr <> 0 Then :ikdbr Else kdslbr end kdslbr
And Case When :ikdland <> ' ' Then :ikdland Else vsbla end vsbla
And vsvtr >= Case When :ivtrvon <> 0 Then :ivtrvon Else vsvtr end
And vsvtr <= Case When :ivtrbis <> 0 Then :ivtrbis Else vsvtr end
And Case When :iverb <> 0 Then vsvbnr else 9999999 end
in
(Select stverb from WUVT0547VB)
And Case 
When :ikdnr <> 0 Then :ikdnr Else vskdnr end vskdnr
And Case When :imagr <> ' ' Then :imagr Else vsmagr end
vsmagr
And Case When :imhptgr <> ' ' Then :imhptgr Else
coalesce(mi1v22' 'end coalesce(mi1v22' ')
And Case 
When :imarkind <> ' ' Then :imarkind Else vsmark end
vsmark
And Case When :iwg <> ' ' Then :iwg Else vsmrze end vsmrze
And Case When :iprodhgr <> ' ' Then :iprodhgr Else vsprhg end
vsprhg
And Case When :iprodgr <> ' ' Then :iprodgr Else vsprgr end
vsprgr
And Case When :iprodugr <> ' ' Then :iprodugr Else vsprug end
vsprug
And Case When :igebgr <> ' ' Then :igebgr Else vsgebi end vsgebi
And Case When :igebart <> ' ' Then :igebart Else vsgeba end
vsgeba
And Case When :iuland <> ' ' Then :iuland Else
coalesce(mi1v19' 'end coalesce(mi1v19' ')
And Case 
When :ipreisgr <> ' ' Then :ipreisgr Else vspgrg end
vspgrg
And Case When :itnr <> ' ' Then :itnr Else vstnr end vstnr
And Case When :istatus <> ' ' Then :istatus Else imsts end
imsts
Group by
case when :IndKumVb '1' or :IndKumKd '1' then 0 else vsman end,
case 
when :IndKumVb '1' or :IndKumKd '1' then vsvbnr else 0 end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.ana1 else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.ana2 else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.acoi else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.apla else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.aort else ' ' end,
case 
when :IndKumVb '1' or :IndKumKd '1' then a.astr else ' ' end,
case 
when :IndKumKd '1' then vskdnr else 0 end,
case 
when :IndKumKd '1' then kdslst else 0 end,
case 
when :IndKumKd '1' then b.ana1 else ' ' end,
case 
when :IndKumKd '1' then b.ana2 else ' ' end,
case 
when :IndKumKd '1' or :IndKumLd '1' then b.acoi else ' ' end,
case 
when :IndKumKd '1' then b.apla else ' ' end,
case 
when :IndKumKd '1' then b.aort else ' ' end,
case 
when :IndKumKd '1' then b.astr else ' ' end,
case 
when :IndKumKd '1' then vskdgr else ' ' end,
case 
when :IndKumKd '1' then c.tabbez else ' ' end,
case 
when :IndKumKd '1' then kdslbr else ' ' end,
case 
when :IndKumKd '1' then d.tabbez else ' ' end,
case 
when :IndKumKd '1' then kdslpt else ' ' end,
case 
when :IndKumKd '1' or :IndKumVt '1' then vsvtr else 0 end,
case 
when :IndKumKd '1' or :IndKumVt '1' then e.tabbez else ' '
end,
case 
when :IndKumKd '1' then kdsbdw else ' ' end,
case 
when :IndKumKd '1' then kdfu1 else 0 end,
// Teilenr, Bez, Status, Eigen-/Fremdfertigung, Prod.EAN, Karton.EAN, Zolltarif-Nr.
case when :IndKumTn '1' then vstnr else ' ' end,
case 
when :IndKumTn '1' then imdsc else ' ' end,
case 
when :IndKumTn '1' then imsts else ' ' end,
case 
when :IndKumTn '1' then imcode else ' ' end,
case 
when :IndKumTn '1' then imrsv9 else ' ' end,
case 
when :IndKumTn '1' then imrsv0 else ' ' end,
case 
when :IndKumTn '1' then mi1swn else ' ' end,
// Preisgr, MarkenGruppe
case when :IndKumTn '1' or :IndKumPr '1' then vspgrg else ' ' end,
case 
when :IndKumTn '1' or :IndKumPr '1' then f.prbez else ' '
end,
case 
when :IndKumTn '1' then vsmagr else ' ' end,
case 
when :IndKumTn '1' then g.tabbez else ' ' end,
// MarkenHptGr, MarkeInd, Warengruppe
case when :IndKumTn '1' then mi1v22 else ' ' end,
case 
when :IndKumTn '1' then h.tabbez else ' ' end,
case 
when :IndKumTn '1' then vsmark else ' ' end,
case 
when :IndKumTn '1' then i.tabbez else ' ' end,
case 
when :IndKumTn '1' or :IndKumWG '1' then vsmrze else ' ' end,
case 
when :IndKumTn '1' or :IndKumWG '1' then j.tabbez else ' '
end,
// ProdHptGr, ProdGr 
case when :IndKumTn '1' then vsprhg else ' ' end,
case 
when :IndKumTn '1' then p.tabbez else ' ' end,
case 
when :IndKumTn '1' or :IndKumPG '1' then vsprgr else ' ' end,
case 
when :IndKumTn '1' or :IndKumPG '1' then k.tabbez else ' '
end