2016-07-01 2 views
-1

BizTableを連結クエリ

ID   From Store  To Store  Quantity 
01020405 401    402    5 
01020405 499    406    6 
01020405 401    418    15 
01020405 403    402    10 
01020405 402    403    20 
01020405 402    406    10 
01020405 406    403    2 

私の目的は、上記BizTableから各列のために、各PARTのため外出SUMMARY量を表示し、文字列の中のようなものを、それをしようとしている店舗を連結でしょうクエリを記述することですJ.Zend @

ID   Store_OUT   SUM_Quantity  
01020405 401 - 402,418   20 
01020405 402 - 403,406   30 

答えて

0

テーブルスキーマ今

CREATE TABLE TESTXML 
(
ID VARCHAR(20), 
FromStore VARCHAR(20), 
ToStore VARCHAR(20), 
Quantity INT 
) 
INSERT INTO TESTXML 
VALUES('01020405','401','402',5), 
('01020405','499','406',6), 
('01020405','401','418',15), 
('01020405','403','402',10), 
('01020405','402','403',20), 
('01020405','402','406',10), 
('01020405','406','403',2) 

あなたは

ID   Store_Out  Sum_Quantity 
01020405 401 - 402,418 20 
01020405 402 - 403,406 30 
01020405 403 - 402  10 
01020405 406 - 403  2 
01020405 499 - 406  6 
+0

を次のようになりますでしょう。この

;WITH CTE AS ( SELECT ID, FromStore, ToStore, STORE_OUT = ( SELECT [text()] = A.ToStore + ',' FROM TestXml A WHERE A.FromStore = B.FromStore ORDER BY A.ToStore FOR XML PATH('') ) FROM TestXml B ) ,BTE AS ( SELECT X.ID, X.FromStore, X.FromStore+' - '+X.STORE_OUT AS STORE_OUT , Y.Quantity FROM CTE X JOIN TestXml Y ON X.ID = Y.ID AND X.FromStore = Y.FromStore AND X.ToStore = Y.ToStore ) SELECT ID, LEFT(STORE_OUT, (LEN(STORE_OUT) - 1)) AS Store_Out, SUM(Quantity) AS SUM_Quantity FROM BTE GROUP BY ID, STORE_OUT 

を試してみてください、あなたに@Tanjimラーマンありがとうございます。私は確かにそれをテストします – Koda

+0

偉大な@タンジムラーマン。それは完璧に機能します。あなたの責任を感謝します。 – Koda

+0

ハッピーコーディング.. :) – Esty

0
SELECT id, CONCAT(FROM_store,' - ',`to_store`) AS store_out, 
SUM(quantity) AS sum_quantity 
FROM biztable 
GROUP BY id , from_store, to_store 
ORDER BY id , from_store, to_store; 
0

以下の表は、ありがとうございました。

私はto_store列が欠けていました。正しいクエリは次のとおりです。

SELECT id, CONCAT(FROM_store,' - ',`to_store`) AS store_out, 
     SUM(quantity) AS sum_quantity 
FROM biztable 
GROUP BY id , from_store, to_store 
ORDER BY id , from_store, to_store; 

1つの問題があります。 WHS-OUT列は、この例に示すように連結結果のすべてのto_storesを追加していません。このクエリは1つのストアのみを使用しています。