Seite 1 von 1

SELECT mit Wert und ohne Wert

Verfasst: Di, 29. Aug 2023 7:30
von Manfred
Überschrift klingt sicherlich ein wenig komisch, aber hier das Problem:

Code: Alles auswählen

SELECT  kd.*,
        sch.bez AS Schule,
        hststart.name AS haltestellestart,
        hstziel.name AS haltestelleziel,
        et.origin,
        ticket.*,
      ticket.id AS idticket,
        ta.gueltigmonat,
        ta.gueltigjahr
FROM mandanten kd
LEFT JOIN schulen sch ON sch.id = kd.idschule
LEFT JOIN gemeinsameDaten.haltestellen hststart ON hststart.haltestellennr = kd.haltestellennrstart
LEFT JOIN gemeinsameDaten.haltestellen hstziel  ON hstziel.haltestellennr = kd.haltestellennrziel
LEFT JOIN ticketlaufzeit ticket ON ticket.idmandant=kd.id
LEFt JOIN ticketabruf ta ON ta.idticketlaufzeit=ticket.id
LEFT JOIN eventtemplates et ON et.produktnummer=ticket.produktnummer
WHERE EMPTY(ticketartbez) AND ta.gueltigmonat = 8 and ta.gueltigjahr = 2023 OR ta.gueltigmonat = 0
ORDER BY kd.name, kd.vorname, ticket.ticketartbez
hierbei bekomme ich nur den entsprechenden Monat mit dem Jahr. Jetzt habe ich aber das Problem, das es auch Sätze gibt, die keinen Ticketabruf haben. Die müssen auch angezeigt werden. Geht sowas und wenn ja wie? Also eigentich:"zeige mir alle die Tickets zum Monat und Jahr haben, aber auch die die nicht da rein fallen." Den Rest laß weg. Es muß deshalb so sein, weil es für verschiedene Monate usw. Tickets gibt, die sollen aber nur im entsprechenden Monat angezeigt werden. Oder eben halt auch oder nur die, die keine Tickets haben für den entsprechenden Monat.
Ist jetzt nur eine Idee, dieser SQl Befehl ist nicht unbedingt in Stein gemeißelt. enn es so nicht geht... Ist jetzt ADS. Oder kann mann evtl. 2 SELECT Befehle addieren? Also erstmal die mit dem Inhalt für den jeweiligen Monat und dann einen weitern nur mit denen, die keinen Monat haben?

Re: SELECT mit Wert und ohne Wert

Verfasst: Di, 29. Aug 2023 8:46
von Marcus Herz
Im Prinzip geht's so:
Wenn du für jeden Monat ein Ergebnis brauchst, musst du eine (Temp) Tabelle haben, in der jeder Monat auch drinsteht. Und dann einen Verknüpfung dazu, so dass jeder Monat auch angezeigt wird, mit oder ohne Ticket

Altrernativ kannst du auch ein UNION machen, der erste Teil bleibt dein SQL, im zweiten Teil musst du dann die Monate ergänzen die im ertsen fehlen, dann brauchst du aber auch wieder eine Monatsttabelle...


PS: Ich hab dir Frage falsch verstanden..... melde mich nochmal

Re: SELECT mit Wert und ohne Wert

Verfasst: Di, 29. Aug 2023 8:51
von Manfred
ok,
Danke. Ich hatte gehofft, das es in einem Befehl geht. Also werde ich alles in ein Result packen und dann im Code nachträglich nochmal "filtern".

Re: SELECT mit Wert und ohne Wert

Verfasst: Di, 29. Aug 2023 8:55
von Marcus Herz
neuer Versuch:

Code: Alles auswählen

WHERE EMPTY(ticketartbez) AND ta.gueltigmonat = 8 and ta.gueltigjahr = 2023 OR ta.gueltigmonat = 0
hier ist es immer besser, obwohl unnötig, Klammern zu setzen, weil leserlicher,

Code: Alles auswählen

WHERE (EMPTY(ticketartbez) AND ta.gueltigmonat = 8 and ta.gueltigjahr = 2023) OR ta.gueltigmonat = 0
Wenn es keinen ta Satz gibt, ist die Bedingung ta.gueltigmonat = 0 falsch, wer Wert ist NULL, also

Code: Alles auswählen

WHERE (EMPTY(ticketartbez) AND ta.gueltigmonat = 8 and ta.gueltigjahr = 2023) OR ta.gueltigmonat IS NULL
Hilft dir das weiter?

Re: SELECT mit Wert und ohne Wert

Verfasst: Di, 29. Aug 2023 9:20
von Manfred
ist zu früh heute morgen. Muß ich mir später nochmal ansehen. :roll:

Re: SELECT mit Wert und ohne Wert

Verfasst: Di, 29. Aug 2023 10:45
von Marcus Herz
ist zu früh heute morgen. Muß ich mir später nochmal ansehen. :roll:
Bist du noch gar nicht richtig wach? :D

Re: SELECT mit Wert und ohne Wert

Verfasst: Di, 29. Aug 2023 11:49
von Manfred
doch, aber irgendwie sind wir gerade hier zu viert oder mehr im Raum. :roll: