Filtern aber 0-Werte behalten

Moderator: ModerationP

Filtern aber 0-Werte behalten

Beitragvon Kerstin83 » 18. Aug 2019, 13:56

Liebes Forum :P :P

..ich erläutere das an einem Beispiel.

Ich möchte gerne von allen Artikeln wissen, wieviele in einem bestimmten Zeitraum verkauft wurden. Das geht mit einer solchen Abfrage:
Code: Alles auswählen
SELECT ArtID, Sum(Menge)
FROM tblBestellungen LEFT JOIN tblBestellungenPositionen ON tblBestellungen.BestID = tblBestellungenPositionen.BestellID
WHERE blBestellungen.Bestelldatum Between #9/1/2018# And #12/31/2018#
GROUP BY tblBestellungenPositionen.ArtID;

Dann werden aber nur diejenigen Artikel angezeigt, die auch in dem Zeitraum verkauft wurden. Ich möchte gerne, dass in der Liste auch die anderen, in dem Zeitraum nicht verkauften Artikel vorkommen, mit der Menge 0.

Kann man das in einer Query/Abfrage machen ? (mit zwei Abfragen, bei der die zweite die o.g. Abfrage einbindet geht das natürlich).

Liebe Grüße

Kerstin :P
Ich hasse Leute, die Sätze nicht zuende

Tchibo Induktions-Milchaufschäumer
Standby-Betrieb: 18 Watt.
Pro Jahr: 80 kg CO2 (und 30 Euro)

- Ohne Kommentar -
Kerstin83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1376
Registriert: 03. Aug 2005, 13:29
Wohnort: Zur Zeit im schönen Berlin

Re: Filtern aber 0-Werte behalten

Beitragvon Bitsqueezer » 18. Aug 2019, 15:15

Hallo,

Du gehst ja von den Bestellungen aus, um die ArtID zu ermitteln. Wenn Du als erste Tabelle die Artikelliste verwendest und von da aus einen LEFT JOIN auf die Bestellungen, hast Du alle Artikel und nur die Bestellungen, die für die jeweiligen Artikel existieren.

Mit Nz kannst Du dann aus NULL auch 0 machen.

Gruß

Christian
Bitsqueezer
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 7035
Registriert: 21. Jun 2007, 12:17

Re: Filtern aber 0-Werte behalten

Beitragvon Gast » 18. Aug 2019, 18:50

Danke.

Bist du dir da ganz sicher ?

Also bei mir werden durch die Bedingung
Code: Alles auswählen
WHERE blBestellungen.Bestelldatum Between #9/1/2018# And #12/31/2018#

alle Artikel rausgefiltert, bei denen keine Bestellung in diesem Zeitraum war. Das ist auch so, wenn ich den Join umdrehe :(
Gast
 

Re: Filtern aber 0-Werte behalten

Beitragvon ComputerVersteher » 18. Aug 2019, 19:18

Hi,

das hat er übersehen, aber etwas Eigeninitiative wäre schön ;)
Code: Alles auswählen
SELECT tblArtikel.ArtID
   ,Nz(Bestellt.ArtSumme, 0)
FROM tblArtikel
LEFT JOIN (
   SELECT ArtID
      ,Sum(Menge) AS ArtSumme
   FROM tblBestellungen
   LEFT JOIN tblBestellungenPositionen ON tblBestellungen.BestID = tblBestellungenPositionen.BestellID
   WHERE blBestellungen.Bestelldatum BETWEEN #9 / 1 / 2018 #
         AND #12 / 31 / 2018 #
   GROUP BY tblBestellungenPositionen.ArtID
   ) AS Bestellt ON tblArtikel.ArtID = Bestellt.ArtID;


Gruß CV
"Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."
Benutzeravatar
ComputerVersteher
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 359
Registriert: 23. Jul 2016, 18:17

Re: Filtern aber 0-Werte behalten

Beitragvon Kerstin83 » 19. Aug 2019, 17:46

Danke !
Mit der Nz-Funktion hat es geklappt. (War ja dann eigentlch auch schon bei Christian mit dabei, hatte ich nur nicht so wahrgenommen).

Liebe Grüße

Kerstin :P
Ich hasse Leute, die Sätze nicht zuende

Tchibo Induktions-Milchaufschäumer
Standby-Betrieb: 18 Watt.
Pro Jahr: 80 kg CO2 (und 30 Euro)

- Ohne Kommentar -
Kerstin83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1376
Registriert: 03. Aug 2005, 13:29
Wohnort: Zur Zeit im schönen Berlin

Re: Filtern aber 0-Werte behalten

Beitragvon Gast » 20. Aug 2019, 08:56

Hallo,
ist der SQL-Code von CV schon geordnet geordnet oder kann man ihn wegen der Lesbarkeit besser strukturieren?
Wie müsste man also ihn ggf. hier schreiben??
Gruß Heinz
Gast
 

Re: Filtern aber 0-Werte behalten

Beitragvon Gast » 20. Aug 2019, 10:03

Hi Heinz,

das hängt von Deinen persönlichen Vorlieben ab. Ich hab einfach mit Notepas++ und 'Poor Man's T-SQL Plug-in' mit Standard Einstellungen formatiert. Da gibt es aber je nach benutztem Programm/Dienst, jede Menge Einstellungen (z.B. sqlinform).

Alles ist besser als der unformatierte Access SQL-Code.

Gruß CV
Gast
 

Re: Filtern aber 0-Werte behalten

Beitragvon Kerstin83 » 20. Aug 2019, 22:35

das SQL ist doch gut geordnet und gut lesbar.

Ich habe es aber doch ganz anders gelöst. Einfach mit einer OR-Clause...
Ich hasse Leute, die Sätze nicht zuende

Tchibo Induktions-Milchaufschäumer
Standby-Betrieb: 18 Watt.
Pro Jahr: 80 kg CO2 (und 30 Euro)

- Ohne Kommentar -
Kerstin83
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 1376
Registriert: 03. Aug 2005, 13:29
Wohnort: Zur Zeit im schönen Berlin


Zurück zu Access Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 7 Gäste