Hallo,
muss mich jetzt nach gut nem halben Jahr mal wieder mit SQL beschäftigen und komme schon wieder nicht klar.
Hab schon einiges gelesen und denke das ich mit einer Sub Query arbeiten muss, bekomme das aber nicht richtig zum laufen.
Folgende SQL Abfrage existiert bereits und funktioniert fehlerfrei
Jetzt benötige ich aber noch eine bzw. eher zwei zusätzliche Bedingungen.
Und zwar sollen nur Datensätze angezeigt werden bei denen der "Betreff" NICHT einen bestimmte String enthält UND GLEICHZEITIG das Feld "Kunde_Kostenstelle" NICHT Null ist.
Anders gesagt, er soll alle Datensätze ignorieren die den String im "Betreff" enthalten und keine "Kunde_Kostenstelle" eingetragen haben. Wenn aber nur eine der beiden Bedingungen zutrifft soll der Wert trotzdem angezeigt werden.
so ungefähr soll also die zusätzliche Bedingung aussehen.
Wenn ich das ganze jetzt aber zusammenschreibe funktioniert das nicht wie erwartet und er scheint alle Datensätze zu filtern bei denen auch schon nur eine der beiden Bedingungen zutrifft.
Die Klammern scheinen in SQL ja nicht wirklich eine Wirkung zu haben.
Nur leider weiß ich jetzt nicht wie die richtige Syntax hier aussehen muss.
Hoffe mir kann da jemand helfen.
LG
muss mich jetzt nach gut nem halben Jahr mal wieder mit SQL beschäftigen und komme schon wieder nicht klar.
Hab schon einiges gelesen und denke das ich mit einer Sub Query arbeiten muss, bekomme das aber nicht richtig zum laufen.
Folgende SQL Abfrage existiert bereits und funktioniert fehlerfrei
Code:
SELECT TicketID, Zustaendig_Person, Zustaendig_Bereich, Betreff, Zieltermin, PrioNr, Prio, Prio_Kuerzel, StatusNr, Status, TicketTyp, ErstelltAm, ErstelltAmJahr, ErstelltAmMonat, PrioNiedrig, PrioNormal, PrioKritisch, PrioZeitkritisch, StatusOffen, StatusInBearbeitung, StatusErledigt, StatusStorniert, UeberZieltermin, DauerInStunden, DauerInMinuten, DauerInTagen, Kunde, Kunde_Kostenstelle, T_Company, T_Location
FROM VI_LuW_TC_Tickets
WHERE (ErstelltAmMonat = @Monat) AND (StatusNr <> 4) OR
(StatusNr <> 4) AND (@Monat = - 1) OR
(ErstelltAmMonat = @Monat) AND (@Status = - 1) OR
(@Monat = - 1) AND (@Status = - 1)
Jetzt benötige ich aber noch eine bzw. eher zwei zusätzliche Bedingungen.
Und zwar sollen nur Datensätze angezeigt werden bei denen der "Betreff" NICHT einen bestimmte String enthält UND GLEICHZEITIG das Feld "Kunde_Kostenstelle" NICHT Null ist.
Anders gesagt, er soll alle Datensätze ignorieren die den String im "Betreff" enthalten und keine "Kunde_Kostenstelle" eingetragen haben. Wenn aber nur eine der beiden Bedingungen zutrifft soll der Wert trotzdem angezeigt werden.
Code:
(Betreff NOT LIKE 'SR: %') AND (Kunde_Kostenstelle <> '')
so ungefähr soll also die zusätzliche Bedingung aussehen.
Wenn ich das ganze jetzt aber zusammenschreibe funktioniert das nicht wie erwartet und er scheint alle Datensätze zu filtern bei denen auch schon nur eine der beiden Bedingungen zutrifft.
Code:
SELECT TicketID, Zustaendig_Person, Zustaendig_Bereich, Betreff, Zieltermin, PrioNr, Prio, Prio_Kuerzel, StatusNr, Status, TicketTyp, ErstelltAm, ErstelltAmJahr,
ErstelltAmMonat, PrioNiedrig, PrioNormal, PrioKritisch, PrioZeitkritisch, StatusOffen, StatusInBearbeitung, StatusErledigt, StatusStorniert, UeberZieltermin,
DauerInStunden, DauerInMinuten, DauerInTagen, Kunde, Kunde_Kostenstelle, T_Company, T_Location
FROM VI_LuW_TC_Tickets
WHERE
(
((Betreff NOT LIKE 'SR: %') AND (Kunde_Kostenstelle <> '') )
AND (
(ErstelltAmMonat = @Monat) AND (StatusNr <> 4) OR
(StatusNr <> 4) AND (@Monat = - 1) OR
(ErstelltAmMonat = @Monat) AND (@Status = - 1) OR
(@Monat = - 1) AND (@Status = - 1)
)
)
Die Klammern scheinen in SQL ja nicht wirklich eine Wirkung zu haben.
Nur leider weiß ich jetzt nicht wie die richtige Syntax hier aussehen muss.
Hoffe mir kann da jemand helfen.
LG