2016-07-25 7 views
1

Ich habe eine Abfrage geschrieben, die eine Datumsspalte in einer Datenbank suchen und 14 Tage hinzufügen würde, mein Problem ist, dass die Abfrage auf eine Dokumentstatusspalte schauen muss, suchen Sie nach Unprocessed und teilweise verarbeitet und fügen Sie 14 oder 7 Tage respektvoll hinzu.SQL If-Anweisung und Zusammenführung von 2 Abfragen

ZB wenn ein Auftrag heute kam, ist er unverarbeitet und das Datum muss 14 Tage hinzufügen, bevor es aus dem System gelöscht wird. Wenn ein Dokument teilweise verarbeitet wird, muss das Datum 7 Tage vor dem Löschen aus dem System hinzugefügt werden.

Auch die 2 Abfragen müssen zu einem zusammengeführt werden, kann jemand bitte helfen?

SELECT * 
FROM ZS_vwSOA_PendingApproval 
WHERE [Document State] IN ('Unprocessed', 'Partially Processed') 

SELECT Date, DATEADD(day, 14, Date) AS [Expiration Date] 
FROM ZS_vwSOA_PendingApproval 

Antwort

2

Verwendung case Ausdruck:

SELECT 
    Date, 
    CASE [Document State] 
     WHEN 'Unprocessed' THEN DATEADD(day, 14, Date) 
     WHEN 'Partially Processed' THEN DATEADD(day, 7, Date) 
    END AS [Expiration Date] 
FROM ZS_vwSOA_PendingApproval 
WHERE [Document State] IN ('Unprocessed', 'Partially Processed') 
+0

Vielen Dank hat es mit großem Erfolg gearbeitet. – Pooveshin