[英]MySQL joining multiple columns from table 1 to multiple columns on table 2
好的,這是我的問題,我有2個表,orderentry和standardexpenses orderentry(如O)看起來像
ORDERNO | FROMSTATIONCODE | TOSTATIONCODE
和標准費用(SE)看起來像
FROMSTATION | TOSTATION | TOTALAMOUNT | CURRENCY (which is either in MT or USD)
我已經弄清楚如何使用已經轉換的貨幣
ROUND(SUM(IF(SE.CURRENCY='MT',SE.TOTALAMOUNT*0.0336,SE.TOTALAMOUNT)),2)
我想知道的是如何將O.FROMSTATIONCODE
和O.TOSTATIONCODE
到SE.FROMSTATION
和SE.TOSTATION
...但是仍然能夠計算SUM(TOTALAMOUNT).
因為現在我的代碼是
SELECT
FROMSTATION,
TOSTATION,
SUM(TOTALAMOUNT),
COUNT(TOTALAMOUNT),
CURRENCY
FROM STANDARDEXPENSES
JOIN ORDERENTRY AS O
ON STANDARDEXPENSES.FROMSTATION = O.FROMSTATIONCODE
AND STANDARDEXPENSES.TOSTATION = O.TOSTATIONCODE
GROUP BY FROMSTATION,TOSTATION,CURRENCY
注意:例如。 SE從目的地1到目的地2有5種不同的支出,而ORDERENTRY有12種
ORDERNO
從DESTINATION1到destionation2,我想用總的5項開支
(轉換后)並將其應用於所有12個ORDERNO,以便它們各自顯示相同的TOTALAMOUNT。
現在我嘗試一下,它給了我什么似乎是隨機的倍數,而不是實際的數量。
我不確定這是否適用於MySQL,但您可以嘗試這樣的方法。 如果問題在於如何在匯總的TOTALAMOUNT中轉換貨幣值。
SELECT
FROMSTATION,
TOSTATION,
CASE CURRENCY WHEN 'MT' THEN 0.0336 ELSE 1.00 END AS FX_RATE,
ROUND(SUM(TOTALAMOUNT*FX_RATE),2),
COUNT(TOTALAMOUNT),
CURRENCY
FROM STANDARDEXPENSES
JOIN ORDERENTRY AS O
ON STANDARDEXPENSES.FROMSTATION = O.FROMSTATIONCODE
AND STANDARDEXPENSES.TOSTATION = O.TOSTATIONCODE
GROUP BY FROMSTATION,TOSTATION,CURRENCY
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.