Om som vanligt; ange dbms så man vet vad man har att utgå ifrån.
Dem vanligaste kommandona som Sum(), join osv borde väl stödjas av de flesta dbms så jag tänkte inte det behövdes än då det inte är riktigt bestämt vilken dbms som skall användas. Men skall tänka på det nästa gång.
LarsG skrev:
select n_Namn, sum(poäng)
from t1 inner join t2 on t1.n_id = t2.n_id
group by n_namn
Det är sant att sum() och liknande funktioner är standard. Men det som gör att det skulle vara bra att veta vilken dbms som används är det bästa svar som kan levereras är det som du fått av LarsG, som fungerar, men inte är komplett.
LarsGs exempel fungerar så länge det finns minst en post i tabell2 där som motsvarar sökt n_id. Finns det inte det, så får du inget tillbaka. Då får man använda en INNER JOIN istället, och får du ingen träff så kan det hända att du får null i resultat från SUM(). Hur ska detta hanteras? (här vore det bra att veta dbms).
Det är alltid intressant att veta vilken dbms som används, för att kunna ge ett så komplett svar som möjligt.
Det är sant att sum() och liknande funktioner är standard. Men det som gör att det skulle vara bra att veta vilken dbms som används är det bästa svar som kan levereras är det som du fått av LarsG, som fungerar, men inte är komplett.
LarsGs exempel fungerar så länge det finns minst en post i tabell2 där som motsvarar sökt n_id. Finns det inte det, så får du inget tillbaka. Då får man använda en INNER JOIN istället, och får du ingen träff så kan det hända att du får null i resultat från SUM(). Hur ska detta hanteras? (här vore det bra att veta dbms).
Det är alltid intressant att veta vilken dbms som används, för att kunna ge ett så komplett svar som möjligt.
Japp, den informationen om vilken dbms det skall vara kan inte bli överflödig. Men som sagt det är inte bestämt än så än så länge måste det vara generella sql argument som skall skapas.
Kanske skulle skrivit att det finns någon bestämd dbms.
Ska det vara generellt så får du nog skriva det som en LEFT JOIN istället för en INNER, och sedan hantera eventullt NULL-svar från SUM() i applikationen.
Ska det vara generellt så får du nog skriva det som en LEFT JOIN istället för en INNER, och sedan hantera eventullt NULL-svar från SUM() i applikationen.
Jag har en liten följd fråga. Jag skulle vilja sortera posterna. Samt ta ut mer data från Tabellerna än n_name samt och det ihopräknade.
1. Jag skulle vilja sortera efter det ihopräknade så jag testade sum(poäng) as poang, och sedan order by poang.
Men det gillade den inte hur jag än gjorde. Vad kan jag ha gjort fel. Eller man kanske inte kan ha order by när man haft group by?
2. Jag vill ha ut mer data som finns i tabell t1 än bara n_name. Men då får jag ett felmeddelande t.ex. "You tried to execute a query that does not include the specified expression 'p_id' as part of an aggregate function".
Hur gör jag för att kunna ha med mer data från dom andra kolumnerna i databasen?
I Access kan man inte sortera efter ett alias, utan du måste ange ordningsnummer. Om Sum() är det femte fältet / värdet i din select-lista, så skriver du ORDER BY 5.
När man använder funktioner såsom sum(), max(), etc, måste alla vanliga fält i selectlistan också ingå i group by.
257 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e