Auf einigen sql ... Ich versuche, eine Liste der Kunden mit Verkäufen pro Jahr (2005-2008) zu erstellen, wird aber nur zeigen Kunden mit Verkäufe in vorherigem (2005-2007) dennoch keine Verkäufe in 2008.Gesamtumsatz: Kunden mit früheren, aber keinen aktuellen Verkäufen zeigen
Ich habe zwei Fragen ... nicht sicher gegründet, die wirkungsvoller ist, aber irgendwie weise ich nicht scheinen, herauszufinden, wie man die Where-Klausel richtig einführt .
Jede Hilfe würde sehr geschätzt werden !!
Abfrage 1:
select r.ResellerName,
(select sum(rs.SalesAmount) from FactResellerSales rs
where rs.ResellerKey = r.ResellerKey
and rs.OrderDateKey >=20050101 and rs.OrderDateKey <20060101) '2005',
(select sum(rs.SalesAmount) from FactResellerSales rs
where rs.ResellerKey = r.ResellerKey
and rs.OrderDateKey >=20060101 and rs.OrderDateKey <20070101) '2006',
(select sum(rs.SalesAmount) from FactResellerSales rs
where rs.ResellerKey = r.ResellerKey
and rs.OrderDateKey >=20070101 and rs.OrderDateKey <20080101) '2007',
(select sum(rs.SalesAmount) from FactResellerSales rs
where rs.ResellerKey = r.ResellerKey
and rs.OrderDateKey >=20080101 and rs.OrderDateKey <20090101) '2008'
From DimReseller r
order by r.ResellerName ASC
Abfrage 2:
Select r.ResellerName,
SUM(case when OrderDateKey>=20050101 and OrderDateKey<20060101 then rs.SalesAmount else 0 end) '2005',
SUM(case when OrderDateKey>=20060101 and OrderDateKey<20070101 then rs.SalesAmount else 0 end) '2006',
SUM(case when OrderDateKey>=20070101 and OrderDateKey<20080101 then rs.SalesAmount else 0 end) '2007',
SUM(case when OrderDateKey>=20080101 and OrderDateKey<20090101 then rs.SalesAmount else 0 end) '2008'
from DimReseller r
inner join FactResellerSales rs on rs.ResellerKey = r.ResellerKey
Group by r.ResellerName
Order by ResellerName ASC
'2008' = 0 wird immer falsch sein. Mit dieser Abfrage werden keine Datensätze zurückgegeben. Sie überprüfen, ob die Zeichenfolge '2008' gleich 0 ist. Wenn Sie dies tun möchten, entfernen Sie einfache Anführungszeichen. – Jeffrey
Jahr, habe ich versucht 2008 = 0 und '2008' = 0 ohne Erfolg ... – user3221111
Jeffrey, danke für Ihre Hilfe, nicht sicher, ob Ihre Abfrage tut, was ich wollte (ich war Reverse Engineering es) ... aber letztendlich wollte ich Kunden zeigen, die keinen Umsatz für 2008 haben, aber Verkäufe für frühere Jahre ... – user3221111