Hej Min gissning är att det blir så här : Nästan. Men inte helt. Per Hultqvist: My bad, jag noterade inte att frågan låg i Access-forumet...hoppas Johans svar löser problemet, jag använder inte Access... Tack för försöket. Jag glömde GROUP BY, testa såhär: Nej, tyvärr. Samma fel fortfarande. Missade ytterligare en group by... :( Ja, nu jäklar gick det... (lät konstigt kanske *ler*) Jag har inte Access att testa med så detta är helt ur huvudet men jag tror den skall ge samma resultat: Du är kung Andreas! Men var har du varit de senaste åren!? Ja, du. Så där ja... riktigt snyggt och kort kod också...Säkert enkel SQL-fråga om summering
Jag har en tabell som jag skulle vilja göra två olika summeringar på.
Vi kan säga att fälten i tabellen tabellnamn heter:
id
personid
typid
Hur gör man då om man ex. har följande värden...
id personid typid
1 1 3
2 1 4
3 2 3
4 1 3
5 3 4
...och skulle vilja ha svaret på den här formen...
typid - antal totalt - Antal unika personer
3 3 2
4 2 2
Hoppas ni förstår hur jag menar och att någon vet hur man kan skriva detta på enklast möjliga vis.
Jag vet hur man får fram detta genom att skriva separata frågor och infoga dessa i varandra men det finns säkert ett bättre sätt.
Tack på förhand!
/ PerSv: Säkert enkel SQL-fråga om summering
<code="SQL">
SELECT typid, COUNT(typid) AS antal_totalt, COUNT(distinct personid) AS antal_unika_personer
FROM [tabell]
GROUP BY typid
</code>Sv:Säkert enkel SQL-fråga om summering
Access klagar på: "Syntaxfel (operator saknas) i frågeuttrycket 'COUNT(distinct personid)´.
???
/ PerSv: Säkert enkel SQL-fråga om summering
Distinct i count fungerar inte i Access.
Detta blir ju inget vackert, men det enda jag kommer på för tillfället...
SELECT tabell.typid, COUNT(id) AS antal_totalt, A.UniktAntal AS antal_unika FROM tabell INNER JOIN (SELECT typid, COUNT(personid) AS UniktAntal FROM (SELECT DISTINCT typid, personid FROM tabell)) AS A ON tabell.typid = A.typid
/JohanSv: Säkert enkel SQL-fråga om summering
Sv:Säkert enkel SQL-fråga om summering
Tyvärr klarar inte Access av det fullt ut.
Jag får felet "Du försökte köra en fråga med en mängdfunktion som inte innehöll det angivna uttrycket 'typid'.
Måste man ha med typid i outputen på något annat sätt?
/ PerSv: Säkert enkel SQL-fråga om summering
SELECT tabell.typid, COUNT(id) AS antal_totalt, A.UniktAntal AS antal_unika FROM tabell INNER JOIN (SELECT typid, COUNT(personid) AS UniktAntal FROM (SELECT DISTINCT typid, personid FROM tabell)) AS A ON tabell.typid = A.typid GROUP BY tabell.typid, A.UniktAntal
/JohanSv:Säkert enkel SQL-fråga om summering
Kan man ladda upp liten fil här förresten? Så att du kan se hur det blir?Sv: Säkert enkel SQL-fråga om summering
SELECT tabell.typid, COUNT(id) AS antal_totalt, A.UniktAntal AS antal_unika FROM tabell INNER JOIN (SELECT typid, COUNT(personid) AS UniktAntal FROM (SELECT DISTINCT typid, personid FROM tabell) GROUP BY typid) AS A ON tabell.typid = A.typid GROUP BY tabell.typid, A.UniktAntal
/JohanSv:Säkert enkel SQL-fråga om summering
Tack så hemskt mycket Johan! Du kan verkligen det här du.
Mvh
/ PerSv:Säkert enkel SQL-fråga om summering
SELECT typid, SUM(antal) AS antal_totalt, COUNT(*) AS antal_unika
FROM (
SELECT typid, COUNT(*) AS antal
FROM tabell
GROUP BY typid, personid)
GROUP BY typid
Det är en lite enklare fråga, skulle vara intressant att se om den var snabbare.
Sv: Säkert enkel SQL-fråga om summering
/JohanSv:Säkert enkel SQL-fråga om summering
Har studerat och jobbat. Håller inte på så mycket med VB längre.
Vågar inte gå så långt att säga att jag inte längre är någon besserwisser. Har ännu inte bivit botad. ;-)
Det som fångat mitt intresse är Erlang (www.erlang.org), ett funktionellt språk.
Samt följer C# utvecklingen.Sv: Säkert enkel SQL-fråga om summering
Tack igen för alla bra svar!