verwendetes Datenbanksystem: MS SQL 2005
Hallo,
ich soll für unsere Firma eine Abfrage basteln, welche eigentlich im groben eine Gegenüberstellung zum aktuellen Jahr/Monat zum letzten Jahr/Monat liefert.
Dabei gibt es 2 wichtige Tabellen:
Nun möchte ich eben eine Gegenüberstellung darstellen.
folgendes habe ich bereits:
SELECT
Tabelle1.Name, Count(cy.Counter) AS Anzahl, SUM(cy.Kosten) as Kosten
FROM
Tabelle1
LEFT JOIN
(
SELECT
1 as Counter,
Kosten
FROM
Tabelle2
WHERE
DATUM >= '09/01/2008'
AND DATUM < '09/18/2008'
) AS cy ON
Tabelle1.ArtikelID = cy.ArtikelID AND
Diese Abfrage liefert mir für das jetztige Monat das gewünschte Ergebniss, nun würde ich gerne ein weiteres LEFT JOIN verwenden, um die selbe Abfrage von Tabelle2 zu verwenden, nur mit einer anderen Datumsgrenze.
SELECT
Tabelle1.Name, Count(cy.Counter) AS Anzahl, SUM(cy.Kosten) as Kosten
FROM
Tabelle1
LEFT JOIN
(
SELECT
1 as Counter,
Kosten
FROM
Tabelle2
WHERE
DATUM >= '09/01/2008'
AND DATUM < '09/18/2008'
) AS cy ON
Tabelle1.ArtikelID = cy.ArtikelID AND
LEFT JOIN
(
SELECT
1 as Counter,
Kosten
FROM
Tabelle2
WHERE
DATUM >= '08/01/2008'
AND DATUM < '08/18/2008'
) AS py ON
Tabelle1.ArtikelID = py.ArtikelID AND
Jedoch stimmt nachher das Ergebniss von der ersten Abfrage überhaupt nicht mehr.
Meiner Meinung nach wäre ein LEFT JOIN angebracht gewesen, aber ich lasse mich gerne überzeugen.
lg Lion
lg Lion
hier mal ein paar schlagwörter: UNION order group by (z.B. nach wochen oder monaten)
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."
Hallo,
natürlich prompt was vergessen zu erwähnen. es ist wichtig, dass die aktuellen und vormoants Werte in einer Zeile stehen (also nebeneinander), da reiheneiße z.B. Verkaufslokationen aufgelistet werden und nach dennen gruppiert wird.
Also ich brauche es auf die art:
SELECT Tabelle1.NAME, SUM(py.Kosten), SUM(cy.Kosten) ...
lg Lion
in diesem fall empfehle ich mal nach CASE zu suchen.
"Programming is similar to sex. If you make a mistake, you have to support it for the rest of your life."