回答

收藏

基于另一个表的MySQL SELECT SUM

技术问答 技术问答 184 人阅读 | 0 人回复 | 2023-09-12

我有一张表 MySQL
6 s/ _1 L8 Y+ _! k/ ^7 N) b# Btb_currencies$ e3 M+ r0 H  O5 W" ^& a# q
currencyid | currency_nameCU0001     | IDRCU0002     | SGDCU0003     | USDtb_currency_converters, `9 V, S$ V4 H
currencyconverterid | currency_month | from_currencyid_fk | to_currencyid_fk | amountCC00001                                                          | 2018-03-01     | CU00001                                            | CU0002                            | 0.00009CC0002                               | 2018-03-01     | CU0002                              | CU00001                          | 10425CC0003                                                                                                                                                                                                                                      | 2018-03-01     | CU0003                                                                | CU0002                            | 1.31964tb_budgets
" i$ D8 B# [9 v/ g1 C, kbudgetid       | budget_month | departmentid_fk | currencyid_fkBU201803000001 | 2018-03-01   | DP0003                     | CU0002BU201803000002 | 2018-03-01   | DP0002                   | CU0002tb_items
* ^1 p$ T9 s& A; L1 ]itemid | item_name | currencyid_fk | priceIT0001 | Mouse     | CU00001           | 165000IT0002 | Keyboard  | CU0002            | 20IT0003 | TV LCD    | CU0003             | 350tb_pro_request
* X# T8 L& l* o6 u% xrequestid      | budgetid_fk    | itemid_fk | quantityRQ201803000001 | BU201803000001 | IT0002    | 1RQ201803000002 | BU201803000001 | IT0003    | 5RQ201803000003 | BU201803000001 | IT0004    | 1例子:7 S3 f+ E, I/ w0 {3 [6 Y5 ~
我的departmentid_fk是:DP0003意味着我有预算和货币SGD。
9 M& f! v! S- O6 O  G* ~tb_pro_request上    有两个项目使用预算部门的货币(SGD)交易不同的货币(IDR和USD)。
4 o9 ?  O0 m+ b8 K0 q# F% S9 W我想要的是,有必要将两个货币不同的项目转换为SGD(由于我的部门预算为SGD),然后SUM转换。* {2 \/ o: ?2 x" U4 t
*如果货币的话,逻辑SGD不需要转换,但如果不是,SGD然后首先转换使用tb_currency_converters,然后SUM它。
: ]4 K( O# |3 o4 x3 W9 M可以直接查询吗?
4 r' }" `. m6 b1 m' _9 J到目前为止,我的查询代码:7 l. b: o6 v- Y2 h
SELECT    R.requestid,   R.budgetid_fk,   R.category,   R.itemid_fk,   SUM(R.quantity),   R.request_date,   R.investmentid_fk,   R.remarks,   R.approval_status,   I.itemid,   I.item_name,   I.price,   SUM(R.quantity) * I.price as total,    B.budgetid,   B.budget_monthFROM    tb_pro_request R,   tb_items I,   tb_budgets BWHERE    R.itemid_fk = I.itemid AND    R.budgetid_fk = B.budgetid AND    R.investmentid_fk = '' AND    B.active = 'Y' AND    (R.approval_status = 'P' OR R.approval_status = 'A') AND    DATE_FORMAT(B.budget_month,'%Y-%m') = '2018-03' AND    B.departmentid_fk = 'DP0003'    GROUP BY I.currencyid_fk你可以在下面看到三种不同货币的商品。我想要的是转化为IDR,USD的SGD。然后求和(成为1行)% K$ W0 L8 i9 C0 ^" q' ]# z

% z& D+ U1 i: k6 _# ~                                                               
" n4 M* }/ D% W- \2 c. C, K" j    解决方案:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则