2017-03-06 6 views
0
SELECT 
    PO.ITEM_NO, 
    PO_NO, 
    PO.DESCRIPT, 
    PO.REM1, 
    QTY 
FROM PODSCRP PO ,PRODUCT P 
WHERE P.ITEM_NO=PO.ITEM_NO AND PO.PO_NO ='PO170010' 

query result Wie Zeile in Abfrage mssql

I Ergebnis kombinieren erhalten möchten:

if REM1=1 this will FOC1_QTY, 
    REM1=2 FOC2_QTY, 
    REM1=NULL is SALE_QTY 
    and if not include REM1 VALUE 1 or 2, There is not FOC value so FOC1_QTY and FOC2_QTY must be 0. 

Ich möchte die Abfrage ziehen, wie folgende Tabelle.

ITEM_NO FOC1_QTY FOC2_QTY SALE_QTY 
P00001 10  100   100 
P00002 0  0    100 
P00004 0  0    100 

Wie SQL-Abfrage für obige Tabelle zu tun ..

+0

Dann woher kommt das FOC2_QYT kommen? – Mark

+0

Hallo FOC2_QTY ist gekommen, wo REM1 = 2, diese QTY muss FOC2_QTY sein @Mark –

+0

Sie müssen die erwartete Ausgabe im Detail erklären. Ist nicht sinnvoll. – Utsav

Antwort

1

Try this,

DECLARE @T TABLE(ITEM_NO VARCHAR(10),REM1 INT,QTY INT) 
INSERT INTO @T VALUES ('P00001',NULL,100), 
         ('P00001',1,10), 
         ('P00001',2,100) 

SELECT ITEM_NO 
     ,[1] FOC1_QTY 
     ,[2] FOC2_QTY 
     ,[0] SALE_QTY 
FROM (
     SELECT ITEM_NO,ISNULL(REM1,0)REM1,QTY FROM @T 
     )A 
PIVOT(
    MAX(QTY) FOR REM1 IN([1],[2],[0]) 
    )PVT 
+0

Verwendung statt A PIVOT, meine Tabelle? –