Ik heb dus volgende statement geschreven:
en ik krijg volgende melding:
Msg 8118, Level 16, State 1, Line 1
Column 'od.OD_DISCOUNTTYPE' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Nu ik dacht eerst dat het misschien niet mogelijk zou zijn om case uit te voeren met strings maar ik heb dan op microsoft help site een sql-stagement gevonden die wel met strings werkte dus daar ligt het probleem niet aan.
Dan had ik gelezen dat alle datatypes gelijk moeten zijn, vandaar dat ik die converts te geprobeerd heb maar ook hier lag het niet aan.
In het SQL boek dat ik heb staat er maar 1 case statement in en dat is met integers + het is een oracle boek en ik werk met MS sql server.
Ik zou echt niet meer weten wat er fout aan is, of waarom discounttype in een aggregate function zou moeten zitten, en het nut van een group by zie ik ook niet echt in. Zit er nu toch wel al een 3 tal uur op te zoeken.
de sql werkte zolang de case er niet inzat.
Ik hoop dat deze topic niet weer gesloten gaat worden om een kant en klaar antwoord te verkrijgen want ik heb er deze keer echt wel op zitten zoeken
SQL:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| select oh.ORDERH_ORGID ,oh.ORDERH_CUSTREF ,oh.ORDERH_REF ,oh.ORDERH_STATUS ,oh.ORDERH_CREATEDATE ,(select 'Amount' = case convert(nvarchar,od.OD_DISCOUNTTYPE) when '%' then convert(nvarchar,sum((od.OD_VALUE * ((od.OD_VATPERC / 100)+1))* (1-(od.OD_DISCOUNT / 100)))) else convert(nvarchar,sum(od.OD_VALUE * ((od.OD_VATPERC / 100)+1))) end from dbo.ORDERDETAIL od where od.OD_ORDERHID = oh.ORDERH_ID and od.OD_ISACTIVE = 1) amount from dbo.ORDERHEADER oh where oh.orderh_ref like '000000022' |
en ik krijg volgende melding:
Msg 8118, Level 16, State 1, Line 1
Column 'od.OD_DISCOUNTTYPE' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
Nu ik dacht eerst dat het misschien niet mogelijk zou zijn om case uit te voeren met strings maar ik heb dan op microsoft help site een sql-stagement gevonden die wel met strings werkte dus daar ligt het probleem niet aan.
Dan had ik gelezen dat alle datatypes gelijk moeten zijn, vandaar dat ik die converts te geprobeerd heb maar ook hier lag het niet aan.
In het SQL boek dat ik heb staat er maar 1 case statement in en dat is met integers + het is een oracle boek en ik werk met MS sql server.
Ik zou echt niet meer weten wat er fout aan is, of waarom discounttype in een aggregate function zou moeten zitten, en het nut van een group by zie ik ook niet echt in. Zit er nu toch wel al een 3 tal uur op te zoeken.
de sql werkte zolang de case er niet inzat.
Ik hoop dat deze topic niet weer gesloten gaat worden om een kant en klaar antwoord te verkrijgen want ik heb er deze keer echt wel op zitten zoeken