簡體   English   中英

MySQL將表1中的多列連接到表2中的多列

[英]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.FROMSTATIONCODEO.TOSTATIONCODESE.FROMSTATIONSE.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM