2017-12-16 3 views
0

Hallo, ich habe eine SQL-Abfrage und es zählt nicht meine eine Zeile. was Spend genannt wird, kannst du in der Geige sehen. Was ist falsch an meinem Code? Ich brauche nur GrundtabelleWas ist los mit meiner SQL-Abfrage SUM-Gruppe von

Month ID GOT SPEND 
1  1 100 50 
2  1 500 200 
1  2 200 50 

ich die Geige http://sqlfiddle.com/#!9/3623b1/2

Könnten Sie mir bitte helfen erstellt haben? Hier

ist die Abfrage:

select 
    keliones_lapas.Vairuot_Id, 
    MONTH(keliones_lapas.Data_darbo), 
    sum(keliones_lapas.uzdarbis) as Got, 
    coalesce(Suma, 0) AS Spend, 
    (sum(keliones_lapas.uzdarbis) - coalesce(Suma, 0)) Total 
from keliones_lapas 
    left join (
     select Vairuotas, 
       MONTH(Data_islaidu) as Data_islaidu, 
       sum(Suma) as Suma 
    from islaidos 
    group by Vairuotas, MONTH(Data_islaidu)) islaidos 
    on keliones_lapas.Vairuot_Id = islaidos.Vairuotas 
    and MONTH(keliones_lapas.Data_darbo) = MONTH(islaidos.Data_islaidu) 
group by keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo), Suma 
order by keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo); 

Antwort

1

TRY THIS: Sie nehmen bereits Monat in Ihrer Unterabfrage dann wieder MONTH mit von Monat in dem Join abrufen, so ist es NULL zurückkehren und nicht mit jedem Monat passend von keliones_lapas

SELECT 
    keliones_lapas.Vairuot_Id, 
    MONTH(keliones_lapas.Data_darbo), 
    SUM(keliones_lapas.uzdarbis) AS Got, 
    COALESCE(Suma, 0) AS Spend, 
    (SUM(keliones_lapas.uzdarbis) - COALESCE(Suma, 0)) Total 
FROM keliones_lapas 
    LEFT JOIN (
    SELECT Vairuotas, 
      MONTH(Data_islaidu) AS Data_islaidu, --It's already in MONTH 
      SUM(Suma) AS Suma 
    FROM islaidos 
    GROUP BY Vairuotas, MONTH(Data_islaidu)) islaidos 
    ON keliones_lapas.Vairuot_Id = islaidos.Vairuotas 
    AND MONTH(keliones_lapas.Data_darbo) = Data_islaidu --No need to use MONTH or `vice versa` 
GROUP BY keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo), Suma 
ORDER BY keliones_lapas.Vairuot_Id, MONTH(keliones_lapas.Data_darbo) 
+0

Sie sind die Besten! Danke, es hat funktioniert !! Wird es funktionieren, wenn ich zum Beispiel das Jahr hinzufügen möchte? –

+0

Natürlich muss es in diesem Fall auch funktionieren, d. H. "MONAT" oder "JAHR" oder "TAG" oder "irgendeine Datumskombination". Für jede Komplikation können Sie die Nachricht hinterlassen. – Susang

+0

ich bin neu hier, wie und wo genau konnte ich dir eine nachricht hinterlassen? :) –