2017-01-30 46 views
0

在下面的表格中,根據描述我們在不同的列中有不同的數量。我們希望將所有的數量放在一列中,並使用T-SQL腳本將desc放在另一列中。表名是rawdata。我試圖用T-SQL查詢來實現這個結果

當前表結果:

enter image description here

SSI_CUST_TRANS# WAYBILL# BILL_OF_LADING NET_FREIGHT_CHARGES MISC_CODE1_DESC MISC_CODE1_AMT MISC_CODE2_DESC MISC_CODE2_AMT MISC_CODE3_DESC MISC_CODE3_AMT MISC_CODE4_DESC MISC_CODE4_AMT 
3574296 618852 618852 32.5 SPECIAL DELIVERY 40 FUEL SURCHARGE 4.88 NULL NULL NULL NULL 
3574319 618852 618852 32.5 SPECIAL DELIVERY 40 FUEL SURCHARGE 4.88 NULL NULL NULL NULL 

要求的結果:

enter image description here

BILL_OF_LADING WAYBILL# SSI_CUST_TRANS# Charge Type Desc Amount 
618852 618852 3574296 AMOUNT_PAID  77.38 
618852 618852 3574296 NET_FREIGHT_CHARGES ELECTRONIC EQUIP./PARTS 32.5 
618852 618852 3574296 SPECIAL DELIVERY  40 
618852 618852 3574296 FUEL SURCHARGE  4.88 
618852 618852 3574319 AMOUNT_PAID  0 
618852 618852 3574319 NET_FREIGHT_CHARGES ELECTRONIC EQUIP./PARTS 32.5 
618852 618852 3574319 SPECIAL DELIVERY  40 
618852 618852 3574319 FUEL SURCHARGE  4.88 

我們想要的金額和描述,​​轉置作爲圖像顯示。

+2

請不要使用圖片,複製和粘貼實際的和預期的結果。 – McNets

+3

請閱讀[問]。然後編輯您的問題以將示例數據包含爲DDL + DML語句,並將所需結果作爲表格格式的文本。 –

回答

1

從以上數據試過這樣
預期的輸出需要更多的數據

CREATE TABLE #A 
(
SSI_CUST_TRANS BIGINT, 
WAYBILL BIGINT, 
BILL_OF_LADING BIGINT, 
NET_FREIGHT_CHARGES NUMERIC(22,6), 
MISC_CODE1_DESC VARCHAR(100), 
MISC_CODE1_AMT BIGINT, 
MISC_CODE2_DESC VARCHAR(100), 
MISC_CODE2_AMT BIGINT, 
MISC_CODE3_DESC VARCHAR(100), 
MISC_CODE3_AMT BIGINT, 
MISC_CODE4_DESC VARCHAR(100), 
MISC_CODE4_AMT BIGINT 
) 
INSERT INTO #A 
(SSI_CUST_TRANS,WAYBILL,BILL_OF_LADING,NET_FREIGHT_CHARGES,MISC_CODE1_DESC,MISC_CODE1_AMT,MISC_CODE2_DESC,MISC_CODE2_AMT) 
VALUES 

(3574296,618852,618852,32.5,'SPECIAL DELIVERY',40,'FUEL SURCHARGE',4.88),  
(3574319,618852,618852,32.5,'SPECIAL DELIVERY',40,'FUEL SURCHARGE',4.88)  


SELECT DISTINCT BILL_OF_LADING,WAYBILL,SSI_CUST_TRANS,CHARGE_TYPE,NET_FREIGHT_CHARGES,AMOUNT 
FROM #A 
CROSS APPLY (VALUES (MISC_CODE1_DESC, MISC_CODE1_AMT), 
        (MISC_CODE2_DESC, MISC_CODE2_AMT), 
        (MISC_CODE3_DESC, MISC_CODE3_AMT), 
        (MISC_CODE4_DESC, MISC_CODE4_AMT) 
        ) 
      CROSSAPPLIED (CHARGE_TYPE, AMOUNT) 

輸出

BILL_OF_LADING WAYBILL SSI_CUST_TRANS CHARGE_TYPE NET_FREIGHT_CHARGES AMOUNT 
618852 618852 3574296 SPECIAL DELIVERY 32.500000 40 
618852 618852 3574296 FUEL SURCHARGE 32.500000 4 
618852 618852 3574296 NULL 32.500000 NULL 
618852 618852 3574296 NULL 32.500000 NULL 
618852 618852 3574319 SPECIAL DELIVERY 32.500000 40 
618852 618852 3574319 FUEL SURCHARGE 32.500000 4 
618852 618852 3574319 NULL 32.500000 NULL 
618852 618852 3574319 NULL 32.500000 NULL 
+0

謝謝,我會做其他的調整,非常感謝 –

+0

歡迎... @ tharunthamaiah – Chanukya

相關問題