我有2個表,evouchers
,pos_vendor_map
。 pos_vendor_map表中有POS_ID的列表。消息傳送者將具有多個事務並且可以具有相同的POS_ID。根據另一個表的值運行查詢
pos_vendor_map:
ID POS_ID VendorName
1 1 Test1
2 2 Test2
電子獎券:
ID TRANS_TYPE TRANS_AMOUNT TRANS_STATUS POS_ID
1 1 2000 1 1
2 1 3000 1 1
3 1 1000 1 2
4 1 5000 1 2
現在我想交易的總和從evouchers表中的每個POS_ID。因此,這將是像
foreach(POS_ID)
{
SUM(TRANS_AMOUNT)
}
目前我得到的結果,但通過查詢給POS_ID,我希望它是動態的,要檢查POS_IDs的總數,然後對每個運行此查詢。
SELECT
(SUM(IF(ev.TRANS_TYPE='1', ev.TRANS_AMOUNT,0)) - SUM(IF(ev.TRANS_TYPE='2', ev.TRANS_AMOUNT,0))) AS CreditStatus,
(select pvm.VENDOR_NAME from pos_vendor_map pvm where pvm.POS_ID = ev.POS_ID) AS VendorName
FROM
evouchers ev
WHERE
ev.POS_ID='1' and ev.TRANS_STATUS='1';
感謝
是完全相同。我用下面的方法解決了這個問題,但你的問題也是一樣的。謝謝。 'SELECT \t ev.POS_ID \t,pvm.VENDOR_NAME AS VENDORNAME \t,(SUM(IF(ev.TRANS_TYPE = '1',ev.TRANS_AMOUNT,0)) - SUM(IF(ev.TRANS_TYPE = '2' ,ev.TRANS_AMOUNT,0)))AS CreditStatus FROM evouchers EV左加入上pvm.POS_ID = ev.POS_ID pos_vendor_map PVM WHERE ev.TRANS_STATUS = '1' GROUP BY \t ev.POS_ID \t, pvm.VENDOR_NAME;' –