Ich habe eine Liste von Lieferanten mit Bestellungen aus verschiedenen Daten in tbl_supplier_orders
.SQL Server: Wählen Sie Zeilen, die unterschiedliche WHERE-Bedingung basierend auf zwei Spalte
möchte ich nur Aufträge gemäß Regel wählen:
- Wenn SUPPLIER_NAME: A, B, C order_date: 2016-02-19
- Wenn SUPPLIER_NAME: P, Q, R order_date: 2016- 03-12
- Wenn SUPPLIER_NAME: M, N order_date: 2016-03-15
- Wenn SUPPLIER_NAME: W, X, Y, Z order_date: 2016-05-17
- und Rest aller Datensätze Lieferanten ab 2016 -01-01
Die Säulen sind order_name
, order_date
, supplier_name
, address
, cost
.
Mein erster Ansatz ist:
select
*
from
tbl_supplier_order t1
where
t1.order_date >= CONVERT(date, '2016-01-01')
and (t1.order_date < CONVERT(date, '2016-02-19')
AND t1.supplier_name not in ('A','B','C'))
and (t1.order_date < CONVERT(date, '2016-03-12')
AND t1.supplier_name not in ('P','Q','R'))
and (t1.order_date < CONVERT(date, '2016-03-15')
AND t1.supplier_name not in ('M','N'))
and (t1.order_date < CONVERT(date, '2016-05-07')
AND t1.supplier_name not in ('W','X','Y','Z'))
Haben Sie die Frage vergessen? –
Ja, ich muss das Fragezeichen wahrscheinlich hinzufügen !!! – Aarush