Hallo,
ich benötige eine recht komplexe MS-SQL Abfrage, bei der ich ziemlich ratlos bin.
Wir verwenden hier das Ticketing System Remedy. Einige der für uns relevanten Daten importieren wir in eine Taballe.
Hier die wichtigsten Felder der DB:
KundenNummer | Priorität | ErstellDatum
Die recht komplexe Abfrage soll nur Ergebnisse liefern, wenn
1. Mindestens 2 Tickets gefunden wurden, die mit der Priorität 0 oder 1 belegt sind und mind. 1 Ticket davon zwischen 8 und 12 Tage alt ist ODER
2. 1 Ticket mit der Priorität 0 oder 1 gefunden wurde, dass aber länger als 12 Tage offen ist ODER
3. Mindestens 3 Priorität 0 oder 1 Tickets gefunden wurden ODER
4. Mindestens 5 Priorität 2 Tickets vorhanden sind und mind. 1 Ticket davon länger als 30 Tage offen ist ODER
5. die Summe aller Tickets, egal welche Priorität die Anzahl 15 übersteigt.
Kann man das alles überhaupt in einer Abfrage machen? Soweit ich weiß nicht.
Zum Beispiel kann ich ja über HAVING Count(KundenNummer ) bestimmen, wie viele Treffer zurückgegeben werden sollen. Das bringt mir also nichts, da ich je nach Anforderung mal nur 2, mal nur 1 Ticket brauche. Punkt 1 ist schon ziemlich mies, da die zeitliche Einschränkung nur auf eines der beiden gefundenen Tickets zutreffen muss. Mir fällt einfach nicht ein, wie man mit den SQL Anweisungen solche Einschränkungen machen kann.
Hat Ihr vielleicht jemand eine Idee, um mir auf die Sprünge zu helfen?
Danke und Gruß
ich benötige eine recht komplexe MS-SQL Abfrage, bei der ich ziemlich ratlos bin.
Wir verwenden hier das Ticketing System Remedy. Einige der für uns relevanten Daten importieren wir in eine Taballe.
Hier die wichtigsten Felder der DB:
KundenNummer | Priorität | ErstellDatum
Die recht komplexe Abfrage soll nur Ergebnisse liefern, wenn
1. Mindestens 2 Tickets gefunden wurden, die mit der Priorität 0 oder 1 belegt sind und mind. 1 Ticket davon zwischen 8 und 12 Tage alt ist ODER
2. 1 Ticket mit der Priorität 0 oder 1 gefunden wurde, dass aber länger als 12 Tage offen ist ODER
3. Mindestens 3 Priorität 0 oder 1 Tickets gefunden wurden ODER
4. Mindestens 5 Priorität 2 Tickets vorhanden sind und mind. 1 Ticket davon länger als 30 Tage offen ist ODER
5. die Summe aller Tickets, egal welche Priorität die Anzahl 15 übersteigt.
Kann man das alles überhaupt in einer Abfrage machen? Soweit ich weiß nicht.
Zum Beispiel kann ich ja über HAVING Count(KundenNummer ) bestimmen, wie viele Treffer zurückgegeben werden sollen. Das bringt mir also nichts, da ich je nach Anforderung mal nur 2, mal nur 1 Ticket brauche. Punkt 1 ist schon ziemlich mies, da die zeitliche Einschränkung nur auf eines der beiden gefundenen Tickets zutreffen muss. Mir fällt einfach nicht ein, wie man mit den SQL Anweisungen solche Einschränkungen machen kann.
Hat Ihr vielleicht jemand eine Idee, um mir auf die Sprünge zu helfen?
Danke und Gruß
Kommentar