Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
| Author |
Topic |
|
bnf1
Starting Member
7 Posts |
Posted - 2011-12-09 : 06:40:29
|
| SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnrgroup by OpdrachtArtikel.opdrachtnr)the result is:materiaalkosten opdrachtnr artikelnr omschrijving Prijs kenteken voorletters tussenvoegsel achternaam110.00 1 12 band 55.00 12-JS-PP HCG Pieterse30.00 1 33 wieldop 15.00 12-JS-PP HCG Pieterse24.00 1 45 ruitenwisser voor 12.00 12-JS-PP HCG Pieterse5.00 1 1526 Bougies 2.50 12-JS-PP HCG Pieterse1.00 1 1527 Keerringpakking 0.50 12-JS-PP HCG Pieterse25.00 1 1705 Oliefilter 12.50 12-JS-PP HCG Pieterse45.00 1 5071 Olie 22.50 12-JS-PP HCG Pieterse46.50 1 9006 Interieurschoef (Goud) 46.50 12-JS-PP HCG Pieterse220.00 1 12 band 55.00 12-JS-PP HCG Pieterse60.00 1 33 wieldop 15.00 12-JS-PP HCG Pieterse48.00 1 45 ruitenwisser voor 12.00 12-JS-PP HCG Pieterse10.00 1 1526 Bougies 2.50 12-JS-PP HCG Pieterse2.00 1 1527 Keerringpakking 0.50 12-JS-PP HCG Pieterse50.00 1 1705 Oliefilter 12.50 12-JS-PP HCG Pieterse90.00 1 5071 Olie 22.50 12-JS-PP HCG Pieterse46.50 1 9006 Interieurschoef (Goud) 46.50 12-JS-PP HCG Pieterse55.00 1 12 band 55.00 12-JS-PP HCG Pieterse15.00 1 33 wieldop 15.00 12-JS-PP HCG Pieterse12.00 1 45 ruitenwisser voor 12.00 12-JS-PP HCG Pieterse2.50 1 1526 Bougies 2.50 12-JS-PP HCG Pieterse0.50 1 1527 Keerringpakking 0.50 12-JS-PP HCG Pieterse12.50 1 1705 Oliefilter 12.50 12-JS-PP HCG Pieterse22.50 1 5071 Olie 22.50 12-JS-PP HCG Pieterse46.50 1 9006 Interieurschoef (Goud) 46.50 12-JS-PP HCG Pieterse55.00 2 12 band 55.00 32-SKR-1 J de Boer15.00 2 33 wieldop 15.00 32-SKR-1 J de Boer12.00 2 45 ruitenwisser voor 12.00 32-SKR-1 J de Boer2.50 2 1526 Bougies 2.50 32-SKR-1 J de Boer0.50 2 1527 Keerringpakking 0.50 32-SKR-1 J de Boer12.50 2 1705 Oliefilter 12.50 32-SKR-1 J de Boer22.50 2 5071 Olie 22.50 32-SKR-1 J de Boer46.50 2 9006 Interieurschoef (Goud) 46.50 32-SKR-1 J de Boer220.00 3 12 band 55.00 VR-MN-65 BDM Coolen60.00 3 33 wieldop 15.00 VR-MN-65 BDM Coolen48.00 3 45 ruitenwisser voor 12.00 VR-MN-65 BDM Coolen10.00 3 1526 Bougies 2.50 VR-MN-65 BDM Coolen2.00 3 1527 Keerringpakking 0.50 VR-MN-65 BDM Coolen50.00 3 1705 Oliefilter 12.50 VR-MN-65 BDM Coolen90.00 3 5071 Olie 22.50 VR-MN-65 BDM Coolen186.00 3 9006 Interieurschoef (Goud) 46.50 VR-MN-65 BDM Coolennow i need to get a SUM materiaalkosten for eatch opdrachtnrwhen i try to SUM(materiaalkosten)and GROUP BY Opdracht.opdrachtnrMSSQL response is Msg 207, Level 16, State 1, Line 2Invalid column name 'materiaalkosten'.wat should i do to fix this?Thnx,Frank |
|
|
lappin
Posting Yak Master
182 Posts |
Posted - 2011-12-09 : 07:11:13
|
| materiaalkosten is an alias. If you want to refer to it you can include your query as a subquery i.e.Select SUM(materiaalkosten), .....from (SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr)) subGROUP BY ......Alternatively you could use OVER PARTITION BY:SELECT SUM(Artikel.Prijs * OpdrachtArtikel.aantal) over (partition by opdrachtnr) as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr |
 |
|
|
bnf1
Starting Member
7 Posts |
Posted - 2011-12-09 : 07:56:13
|
quote: Originally posted by lappin materiaalkosten is an alias. If you want to refer to it you can include your query as a subquery i.e.Select SUM(materiaalkosten), OpdrachtArtikel.opdrachtnrfrom (SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr)) subGROUP BY OpdrachtArtikel.opdrachtnr
Lappin, thnx for your quick response.I used the subquery as above (i replaced the ..... by OpdrachtArtikel.opdrachtnr)sadly this is the response:Msg 156, Level 15, State 1, Line 9Incorrect syntax near the keyword 'from'.Msg 102, Level 15, State 1, Line 18Incorrect syntax near ')'.please help me furtherThnx,Frank |
 |
|
|
visakh16
Very Important crosS Applying yaK Herder
52326 Posts |
Posted - 2011-12-09 : 08:37:27
|
you've an unnecessary bracesSelect SUM(materiaalkosten), OpdrachtArtikel.opdrachtnrfrom (SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr)) subGROUP BY OpdrachtArtikel.opdrachtnr ------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/ |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2011-12-09 : 08:37:27
|
| Try thisSelect SUM(materiaalkosten), OpdrachtArtikel.opdrachtnrfrom (SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr) subGROUP BY OpdrachtArtikel.opdrachtnrMadhivananFailing to plan is Planning to fail |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2011-12-09 : 08:41:58
|
and tied MadhivananFailing to plan is Planning to fail |
 |
|
|
bnf1
Starting Member
7 Posts |
Posted - 2011-12-09 : 09:05:26
|
quote: Originally posted by madhivanan
and tied MadhivananFailing to plan is Planning to fail
visakh16, madhivanan,Youre corrections helpt me, but now the response is:Msg 4104, Level 16, State 1, Line 13The multi-part identifier "OpdrachtArtikel.opdrachtnr" could not be bound.Msg 4104, Level 16, State 1, Line 1The multi-part identifier "OpdrachtArtikel.opdrachtnr" could not be bound.Line 1 and Line 13 are both outsite of the SUB, is that why i get the error?Thnx,Frank |
 |
|
|
madhivanan
Premature Yak Congratulator
22864 Posts |
Posted - 2011-12-09 : 09:28:56
|
| Try thisSelect SUM(materiaalkosten), opdrachtnrfrom (SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr) subGROUP BY opdrachtnrMadhivananFailing to plan is Planning to fail |
 |
|
|
bnf1
Starting Member
7 Posts |
Posted - 2011-12-09 : 09:36:27
|
quote: Originally posted by madhivanan Try thisSelect SUM(materiaalkosten), opdrachtnrfrom (SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr) subGROUP BY opdrachtnrMadhivananFailing to plan is Planning to fail
Madhivanan,Great, no more errortotaal_materiaalkosten opdrachtnr4055565.50 1579366.50 22317466.00 3i just have to figure out why totaal_materiaalkosten is such a big nummerThnx,Frank |
 |
|
|
bnf1
Starting Member
7 Posts |
Posted - 2011-12-09 : 09:41:15
|
quote: Originally posted by bnf1
quote: Originally posted by madhivanan Try thisSelect SUM(materiaalkosten), opdrachtnrfrom (SELECT Artikel.Prijs * OpdrachtArtikel.aantal as materiaalkosten, OpdrachtArtikel.opdrachtnr, Artikel.artikelnr, Artikel.omschrijving, Artikel.Prijs, Auto.kenteken, Klant.voorletters, Klant.tussenvoegsel, Klant.achternaam From Auto JOIN Klant on Klant.klantnr =Auto.klantnrJOIN Opdracht on Opdracht.kenteken = Auto.kenteken JOIN OpdrachtArtikel on OpdrachtArtikel.opdrachtnr = Opdracht.opdrachtnrJOIN Artikel on Artikel.artikelnr = Artikel.artikelnr) subGROUP BY opdrachtnrMadhivananFailing to plan is Planning to fail
Madhivanan,Great, no more errortotaal_materiaalkosten opdrachtnr4055565.50 1579366.50 22317466.00 3i just have to figure out why totaal_materiaalkosten is such a big nummerThnx,Frank
Found it!!!in my table i had a Artikel.Prijs with a much to high valueEveryone THNX a lotThnx,Frank |
 |
|
|
|
|
|
|
|