Hoi, ik heb een probleem met een query.
Ik heb de volgende tabellen:
Daar wil ik een bepaalde tabel uitkrijgen, wat ook gebeurt met deze query:
SELECT klantnr, artnr, SUM(aantal) FROM factuurregel, factuur WHERE
factuur.factuurnr = factuurregel.factuurnr
GROUP BY artnr, klantnr HAVING sum(aantal) > 30;
Daaruit krijg ik deze tabel:
Deze is al redelijk goed. Alleen wil ik in plaats van de klantnr, de naam van de klant laten zien. Dat probeer ik met deze query:
SELECT naam, artnr, SUM(aantal) FROM klant, factuurregel, factuur WHERE
klant.klantnr = factuur.klantnr AND
factuur.factuurnr = factuurregel.factuurnr
GROUP BY artnr, klantnr HAVING sum(aantal) > 30;
Jammer genoeg geeft deze alleen de volgende error:
SQL error:
ERROR: column reference "klantnr" is ambiguous
Kan iemand mij uitleggen wat ik verkeerd doe? Ik heb al een tijdje lopen stoeien met die query maar ik kom er niet uit.
Alvast bedankt
Ik heb de volgende tabellen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| Table "klant"
Column | Type |
----------------+-------------+
klantnr | serial |
naam | varchar(20) |
Table "factuur"
Column | Type |
--------------+---------+
factuurnr | integer |
klantnr | integer |
factuurdatum | date |
orderdatum | date |
Table "factuurregel"
Column | Type |
---------------+---------+
regelnr | integer |
factuurnr | integer |
artnr | integer |
aantal | integer |
prijs | money | |
Daar wil ik een bepaalde tabel uitkrijgen, wat ook gebeurt met deze query:
SELECT klantnr, artnr, SUM(aantal) FROM factuurregel, factuur WHERE
factuur.factuurnr = factuurregel.factuurnr
GROUP BY artnr, klantnr HAVING sum(aantal) > 30;
Daaruit krijg ik deze tabel:
code:
1
2
3
4
5
6
| klantnr | artnr | sum
---------+-------+-----
10 | 5 | 32
10 | 4 | 41
13 | 2 | 101
13 | 1 | 50 |
Deze is al redelijk goed. Alleen wil ik in plaats van de klantnr, de naam van de klant laten zien. Dat probeer ik met deze query:
SELECT naam, artnr, SUM(aantal) FROM klant, factuurregel, factuur WHERE
klant.klantnr = factuur.klantnr AND
factuur.factuurnr = factuurregel.factuurnr
GROUP BY artnr, klantnr HAVING sum(aantal) > 30;
Jammer genoeg geeft deze alleen de volgende error:
SQL error:
ERROR: column reference "klantnr" is ambiguous
Kan iemand mij uitleggen wat ik verkeerd doe? Ik heb al een tijdje lopen stoeien met die query maar ik kom er niet uit.
Alvast bedankt
They made me do it.