webForumDet fria alternativet

Svår count?

Databaser & SQLur Databashanterare & SQL

5 svar · 605 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

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

Medlem sedan mars 20011 880 inlägg
#2

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;
Medlem sedan dec. 200012 464 inlägg
#3

Varför har du right join?

Medlem sedan mars 20011 880 inlägg
#4

Ä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)?.

Medlem sedan dec. 200012 464 inlägg
#5

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.

Medlem sedan mars 20011 880 inlägg
#6

Ok jag tror att jag förstår, en inner join är att föredra. Tack för lektionen.

138 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)