sawMedlem sedan mars 20011 883 inlägg
Jag ville räkna förekommsten av avikelsrapporter per kvarter, men som vanligt,
fasnar jag.
SELECT
Count( t_Avikelserapport.rapport) AS Antal,
t_Avikelserapport.rapport, t_kvarter.kvarterId
FROM
t_kvarter
RIGHT JOIN (t_gata
INNER JOIN (t_Avikelserapport
INNER JOIN t_Avikelse
ON t_Avikelserapport.rapId = t_Avikelse.rapId)
ON t_gata.gatId = t_Avikelse.gatId)
ON t_kvarter.kvarterId = t_gata.kvarterId
WHERE
(((t_kvarter.kvarterId)=2))
GROUP BY
t_Avikelserapport.rapport;
Felmedelande:
Du försöker köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket "kvarterId"
Lägger jag till kvarterId så räknars de bara som en och en, jag skulle vilja veta
det totala antalet rapporter per kvarter. :l
sawMedlem sedan mars 20011 883 inlägg
Kan detta vara korrekt?
SELECT
Count(t_Avikelserapport.rapId) AS Antal, t_kvarter.kvarterId
FROM
t_kvarter RIGHT JOIN (t_gata
INNER JOIN (t_Avikelserapport
INNER JOIN t_Avikelse
ON t_Avikelserapport.rapId = t_Avikelse.rapId)
ON t_gata.gatId = t_Avikelse.gatId)
ON t_kvarter.kvarterId = t_gata.kvarterId
WHERE
(((t_kvarter.kvarterId)=1))
GROUP BY
t_kvarter.kvarterId;
LarsGMedlem sedan dec. 200012 465 inlägg
Varför har du right join?
sawMedlem sedan mars 20011 883 inlägg
Är det fel? Jag använder mig av Access och konstruerade en fråga och gjorde om den lite
för count. Om jag inte skall ha right join, vad bör jag ha (den fungerar bra)?.
LarsGMedlem sedan dec. 200012 465 inlägg
I det här fallet blir det samma resultat som om du använder en INNER JOIN. En RIGHT join innebär att det inte behöver finnas matchande resultat i den vänstra tabellen, dvs t_kvarter, men då du har villkoret
(t_kvarter.kvarterId)=1
så kommer du ändå att välja bort de poster som inte matchar ditt joinvillkor.
sawMedlem sedan mars 20011 883 inlägg
Ok jag tror att jag förstår, en inner join är att föredra. Tack för lektionen.