【发布时间】:2015-02-12 15:08:42
【问题描述】:
如果 taameer_pay_details 表中存在相应的按日期记录,则以下查询给出记录的输出。如果没有对应记录,则查询从fund_type_master隐藏基金名称
select Revenue as Revenue,
cur_date as Date,
rec_no as FirstRecNo,
Cash as cash,
cheque as cheque,
sum(Cash+ cheque) as Total
from (SELECT
ft.fund_type as Revenue,STR_TO_DATE(tpd.paid_date,'%d-%m-%Y') as cur_date,tpd.rec_no as rec_no,sum(if(tpd.pay_mode='C',tpd.paid_amt,0)) as Cash,sum(if(tpd.pay_mode='DD',tpd.paid_amt,0)) as cheque
FROM taameer_details fd
JOIN taameer_pay_details tpd
on tpd.tpay_id=fd.tamDet_id
cross join fund_type_master ft
on fd.fund_type =ft.fund_id
where TIMESTAMPDIFF(DAY , STR_TO_DATE(tpd.paid_date, '%d-%m-%Y') ,'2015-02-02') >=0
AND TIMESTAMPDIFF(DAY ,'2015-01-01',STR_TO_DATE(tpd.paid_date, '%d-%m-%Y') ) >=0
AND tpd.pay_type=2
AND tpd.status=1
group by ft.fund_id) a
group by Revenue
预期输出
Revenue Date FirstRecNo cash cheque Total
General Funds 2015-01-16 0 46100 7800 53900
Voluntary 2015-01-16 0 0 0 0
XYz 2015-01-16 0 0 0 0
Muv 2015-01-16 0 0 0 0
HMjwa 2015-01-16 0 0 900 900
NJUMz 2015-01-16 0 0 0 0
S Unit 2015-01-16 0 251 0 251
电流输出
Revenue Date FirstRecNo cash cheque Total
General Funds 2015-01-16 0 46100 7800 53900
NJUMz 2015-01-16 0 0 900 900
S Unit 2015-01-16 0 251 0 251
请帮我重新编写查询,以便按照预期结果输出数据。
【问题讨论】:
-
对我来说,您希望如何将行分组在一起并不是很明显。也许您可以将其减少到一些 simple (but complete) example ?
-
请分享表架构??
标签: mysql join inner-join