我需要一些幫助,使SQL查詢。
我有表'stock_exchange',它記錄在四個不同的商店/網站之間互換的股票。
它記錄需要幫助創建mysql查詢多個選擇的具體條件
日期,ITEM_ID,數量,價格,TOTAL_PRICE,from_site,to_site
現在我需要創建一個查詢,爲商店/網站將返回總價的一個運行爲其他三家店之間發送和接收的股票。
例如:有商店1,商店,Store3,Store4
如果我需要檢查商店1,它應該返回:
商店Name____Total Sent____Total收到
商店2 _________ 90.90 _______ 50
Store3_________120_______100。 40
Store4_________400_______200
我嘗試過自己,但只能獲得發送或接收的股票的總和。
這裏是fiddle
編輯:
我改變了表中記錄存儲ID(1,2,3,4 ......),而不是現在的店別名(CRW,CHC,cal_rav ....),並且我接受的代碼(在答案中)已停止工作。我試圖在代碼這項修正案找到店鋪標識匹配的行,但簡化版,返回任何東西:
SELECT GREATEST(t2.name, t3.name) AS from_store,
LEAST(t2.name, t3.name) AS to_store,
SUM(CASE WHEN t2.name < t3.name THEN t1.total_price ELSE 0 END) AS total_sent,
SUM(CASE WHEN t2.name > t3.name THEN t1.total_price ELSE 0 END) AS total_received
FROM stock_exchange t1
INNER JOIN sites t2
ON t1.from_site = t2.id
INNER JOIN sites t3
ON t1.to_site = t3.id
GROUP BY GREATEST(t2.name, t3.name),
LEAST(t2.name, t3.name)
HAVING MAX(GREATEST(t2.id, t3.id)) = '1'
這裏是updated fiddle。
這背後的邏輯,在你的提琴療法是沒有價值Shop1,SHOP2,... – Jens
沒有shop1,SHOP2 ......,我已經提到商店1,商店....到舉例來說,可以在小提琴中找到實際的商店名稱 – sohal07
如果您在此處顯示的結果取決於小提琴中的小提琴 – Jens