Jag vill att frågan "qryUtgiftstyper_Utgiftstyp1_Översikt" ska visa summan för Nu har jag inte tillgång till access men det vanliga är att man gör en left join. Jag får inte till det riktigt. Är det inte någon av alla er som läst tråden som kan hjälpa mig, behöver verkligen denna hjälp för att komma vidare. Ett förslag utifrån vad jag kan utläsa av det du skickat in. Nej, så fungerar ju inte eftersom det då inte finns några utgifter registrerade i tblUtgifter i det datumintervallet. Häng inte upp dig på det jag skrev i datumintervallet, det var bara för "syns" skull. Fast det är ju det som jag behöver få hjälp med. Detta kanske inte är det mest optimala sättet men det bör fungera att dela upp det i två frågor. Jag hade den funderingen också men klarade inte av att få till det.Summering av urvalsfråga.
"Belopp" för "Utgiftstyp1" i valt datumintervall (knappas in i format ex. 2010-01-01, 2010-02-01 när man kör frågan).
Resultatet skulle då se ut så här för det valda datumintervallet och så som tabellen "Utgifter" ser ut nu.
Bil 0
El 1300
Mat 0
Jag kan inte få till det.
Eftersom det inte finns några "Belopp" eller "Utgifter" för alla Utgiftstyper i det valda datumintervallet på frågan så blir resultatet så här.
El 1300
Alltså, jag vill med frågan visa alla ”Utgiftstyp1” och ”Belopp” även om det inte finns några utgifter registrerade i det datumintervall man valt.Sv: Summering av urvalsfråga.
SELECT utgiftstyper.namn, sum(COALESCE(utgifter.belopp,0))
FROM Utgiftstyper
LEFT JOIN utgifter
ON utgiftstyper.Id = utgifter.id
GROUP BY utgiftstyper.namn
(COALESCE heter väl isnull eller något sånt i access)Sv:Summering av urvalsfråga.
Lite svårt att förklara men tabellerna ser ut så här ungefär.
Det är i tabellen tblUtgiftstyper som jag har registrat vilka typer av utgifter som kan väljas i tabellen tblUtgifter. I tabellen tblUtgifter registrerar man sedan utgifterna.
tblUtgiftstyper
Utgiftstyp_1 Utgiftstyp_2
Bil Bensin
Bil Försäkring
Bil Skatt
El Fast
El Rörlig
Mat Dagligvaror
Mat Övrigt
tblUtgifter
Utgiftstyp_1 Utgiftstyp_2 Datum Belopp
El Fast 2010-01-01 200
El Rörlig 2010-01-01 500
El Fast 2010-02-01 100
El Rörlig 2010-02-01 500Sv: Summering av urvalsfråga.
Sv:Summering av urvalsfråga.
Har inte Access, och har inte koll på vilken syntax som gäller, du får se till principen.
<code>
SELECT
Utgiftstyp_1,
SUM(Belopp) AS Summa
FROM tblUtgifter
WHERE Datum >= '2010-01-01' AND Datum <= '2010-02-01'
GROUP BY Utgiftstyp_1
</code>Sv: Summering av urvalsfråga.
Sv:Summering av urvalsfråga.
Du får väl peta in ditt eget datumintervall så klart.Sv: Summering av urvalsfråga.
Jag vill att ALLA Utgiftstyp_1 ska komma med i rapporten även om det inte finns några utgifter för den typen registrerat i datumintervallet, se första inlägget. Och finns det inga utgifter registrerade så ska summan bli "0".Sv: Summering av urvalsfråga.
Förs skapar du denna (qryUtgTyp1InomDatumintervall):
<code>
SELECT Utgifter.Utgiftstyp_1, Sum(Utgifter.Belopp) AS SummaförBelopp, Count(Utgifter.Belopp) AS AntalförBelopp
FROM Utgifter
WHERE (((Utgifter.Datum)>=[Forms]![Rapport]![Kalender_Start] And (Utgifter.Datum)<=[Forms]![Rapport]![Kalender_End]))
GROUP BY Utgifter.Utgiftstyp_1;
</code>
och sedan denna (qryUtgifter_Utgiftstyp1_Översikt) som använder sig av ovanstående
<code>
SELECT Utgiftstyper.Utgiftstyp_1, IIf(IsNull([SummaförBelopp]),0,[SummaförBelopp]) AS Summa, IIf(IsNull([AntalförBelopp]),0,[AntalförBelopp]) AS Antal
FROM Utgiftstyper LEFT JOIN qryUtgTyp1InomDatumintervall ON Utgiftstyper.Utgiftstyp_1 = qryUtgTyp1InomDatumintervall.Utgiftstyp_1
GROUP BY Utgiftstyper.Utgiftstyp_1, IIf(IsNull([SummaförBelopp]),0,[SummaförBelopp]), IIf(IsNull([AntalförBelopp]),0,[AntalförBelopp])
ORDER BY Utgiftstyper.Utgiftstyp_1 DESC;</code>Sv:Summering av urvalsfråga.
Precis så jag ville få det, tack.
Har du fler idéer om andra lösningar på databasen så får du gärna tipsa.
Stort Tack.