NETworkMedlem sedan juni 20011 732 inlägg Hej! Jag har ställt ungefär samma fråga tidigare men nu får jag det inte att fungera igen. Jag har två tabeller för recensioner... ett exempel. Jag har en film. Varje film kan vara recenserad 1 eller flera gånger. Nu försöker jag räkna antal recensioner för varje film så här:
SELECT COUNT(ReviewID) AS Antal, Name FROM Topic T LEFT OUTER JOIN Review R ON T.GameID = R.GameID GROUP BY Name
Men det vill inte funka. Någon som ser vad som är fel?
LarsGMedlem sedan dec. 200012 464 inlägg Det finns inget syntaktiskt fel i den satsen. Vad är probelemt?
NETworkMedlem sedan juni 20011 732 inlägg Japp, den funkade visst... problemet är att jag försöker plocka ut GameID också eftersom jag använder detta i min fuktion. Men när jag försöker hämta ytterligare kolumner så ballar det ur:
SELECT COUNT(ReviewID) AS Antal, Name, GamID FROM Topic T LEFT OUTER JOIN Review R ON T.GameID = R.GameID GROUP BY Name
Jag får felmeddelandet "The specified field 'GameID' could refer to more than one table listed in the FROM clause of your SQL statement."
Hur gör jag för att hämta samtliga kolumner i tabellen Topic?
LarsGMedlem sedan dec. 200012 464 inlägg I så fall måste du ha med den kolumnen i group by
SELECT COUNT(ReviewID) AS Antal, Name, GameID FROM Topic T LEFT OUTER JOIN Review R ON T.GameID = R.GameID GROUP BY Name ,gameid
NETworkMedlem sedan juni 20011 732 inlägg Provade det och det funkar med alla kolumner utom GameID... då får jag felet "The specified field 'GameID' could refer to more than one table listed in the FROM clause of your SQL statement. "
NETworkMedlem sedan juni 20011 732 inlägg Ah, jag måste såkalrt skriva till vilken tabell den tillhör eftersom den finns med i båda. :) Tack för all hjälp! :)
LarsGMedlem sedan dec. 200012 464 inlägg Ja visst ja, du måste kvalificera kolumnnamnet eftersom det finns med i båda tabellerna
SELECT COUNT(ReviewID) AS Antal, Name, T.GameID FROM Topic T
LEFT OUTER JOIN Review R ON T.GameID = R.GameID GROUP BY Name ,T.gameid
NETworkMedlem sedan juni 20011 732 inlägg Precis, toppen! :) För att krångla till det ännu mer så skulle jag även behöva hämta ett medelvärde från tabellen Review för respektive GameID... i tabellen finns en kolumn som heter "Overall" och denna innehåller en siffra för varje recension. Om ett spel eller en film innehåller 3 recensioner så ska jag således plocka medelvärdet från dessa tre recensioner.
Så här lyckades jag få det att fungera:
SELECT AVG(Overall) AS O, Name FROM Topic LEFT OUTER JOIN Review ON Topic.GameID = Review.GameID GROUP BY Name
Men hur slår jag ihop dessa båda sql-satser?!?!?
NETworkMedlem sedan juni 20011 732 inlägg Aha det var ju bara att lägga till AVG(Overall) AS O. :)