2016-06-07 5 views
0

Ich habe 2 Tisch viel und lot_transactionsAbfrage für differenzieren die Datensätze auf Lager, Salesorder, Aussteiger

lot

lotID  | salesorderdocline |   
------------------------------------------------- 
72266414 | 15   |  
72266415 | 0   |  
72266416 | 0   |  

lot_transactions

lotID  | salesorderdocline | trstypeid | trsdate 
---------------------------------------------------------------------------------------- 
72266414 | 0   | 400  |  19-05-2016 
72266414 | 11   | 1104 |  20-05-2016 
72266414 | 11   | 132  |  24-05-2016 
72266414 | 0   | 133  |  25-05-2016 
72266414 | 15   | 1104 |  30-05-2016 
72266415 | 0   | 400  |  04-02-2016 
72266416 | 0   | 400  |  03-02-2016 
72266416 | 10   | 1104 |  05-02-2016 
72266416 | 10   | 400  |  06-02-2016 
72266416 | 10   | 132  |  08-02-2016 
72266416 | 0   | 133  |  09-02-2016 

Ausgabe

lotid  | Stockstatus 
---------------------------------------- 
72266414 | Salesorder 
72266415 | Instock 
72266416 | Dropout 

Kriterien für das Erhalten Salesorder, Instock und Dropout 72.266.414 in Salesorder ist, weil, wenn wir die salesorderdocline überprüfen Sie es von 0 geändert hat - 11 -0 - 15 72.266.415 ist in Instock weil salesorderdocline 0 72266416 ist in Dropout, da salesorderdocline Änderungen von 0-10-0 aufweist.

Wenn die Verkaufsauftragsliste = 0 ist, ist es Bestand. wenn sie größer als 0 als in Salesorder lot_transactions ist der Tisch, an dem wir viel ist die Tabelle, die alle Transaktionen für eine bestimmte Menge sehen kann, wo es nur um den aktuellen Status

zeigen Und ich MSSQL bin mit Datenbank

+0

Was sind die Regeln für 'Salesorder',' Instock' oder 'Dropout'? Ihre Beschreibung ist nicht so klar – Squirrel

+0

@Squirrel, wenn die Verkaufsorderdocline von 0 - 11 -0 - 15 geändert wird als ihre ** Bestellung ** wenn die Verkaufsauftragsdocline nur 0 ist und es keine anderen Transaktionen als sie gibt ** Instock * * wenn der Verkäuferdocline von 0-10-0 als ** Dropout ** ändert –

+0

Also wenn die endgültige Menge ist> 0, als es ist SalesOrder, wenn endgültige Menge ist 0, es ist Dropout ? Wenn die endgültige Menge 0 ist und es die einzige Transaktion ist, als es "instock" ist? – Squirrel

Antwort

1
SELECT l.lotID, 
     Stockstatus = case when l.salesorderdocline > 0 
          then 'SalesOrder' 
          when l.salesorderdocline = 0 
          and not exists 
           (
            select * 
            from lot_transactions x 
            where x.lotID = l.lotID 
            and x.salesorderdocline > 0 
           ) 
          then 'Instock' 
          else 'Dropout' 
          end 
FROM lot l 
+0

Wenn unter lost_transaction-Tabelle, wenn die Verkaufsorderdocline = 0 für 1 Transaktion oder 100 Transaktion, sollte es nur auf Lager sein und oberhalb der Abfrage zeigt nur Verkaufsorder und Dropout. Los ist in Dropout gezeigt, obwohl es auf Lager ist –

+0

@RedDevil so was ist deine Regel für 'InStock' oder 'Dropout'? Wie unterscheidet man es? – Squirrel

+0

also wenn das Los hat sich noch nie in salesorderdocline> 0 geändert, als es auf Lager ist. Aber wenn es von 0 auf mehr als 0 und dann wieder auf 0 geändert wurde, dann ist es ein Dropout –

Verwandte Themen