请教一条mysql的查询语句

表中分别有:登记时间(datetime),登记人,预交金额,领取时间(datetime),领取登记人,补交金额。
共6个字段
现在想要通过一条语句查询某日期段内的收款汇总。
返回结果为:
日期(Y-m-d),登记人(可以是 登记人,也可以是 领取登记人),共收预交金额,共收补交金额

4列,语句该如何写?
有没有办法是在一次查询的情况下,查出登记时间和领取时间各对应的记录,并将(登记时间和领取时间)两个合并汇总为“日期”一项
比较麻烦是有两个日期,举个例子比较容易明白:
登记时间(datetime),登记人,预交金额,领取时间(datetime),领取登记人,补交金额
08-03-01,111,1.00,08-03-03,222,5.00
08-03-02,222,10.00,08-03-03,111,50.00

根据上面的记录,可以查询出如下的结果
日期,操作人员,共收预交金额,共收补交金额
08-03-01,111,1.00,0.00
08-03-02,222,10.00,0.00
08-03-03,111,0.00,50.00
08-03-03,222,0.00,5.00

时刻关注着,若有能成功套用到我的例子中的语句,定必立即将分奉上^_^

第1个回答  2008-03-17
(select 登记时间 as 日期,
登记人 as 操作人员, 预交金额 as 共收预交金额,
0 as 共收补交金额
from table where
登记时间>#2008-1-1#
and 登记时间<#2008-1-1# )
union all
(select 领取时间 as 日期,
领取登记人 as 操作人员,
0 as 共收预交金额,
补交金额 as 共收补交金额
from table where
登记时间>#2008-1-1#
and 登记时间<#2008-1-1# )
第2个回答  2008-03-17
select 登记时间 as 日期,登记人,count(预交金额) as 共收预交金额,count(补交金额) as 共收补交金额 from table where 登记时间>#2008-1-1# and 登记时间<#2008-1-1# group by 登记人

自己 输入的时间可以用一个变量来实现。
第3个回答  2008-03-17
select * from
(
select 登记时间, 登记人 as '登记人', sum(预交金额), sum(补交金额)
from YourTable
group by
登记时间, 登记人
) a,
(
select 登记时间, 领取登记人 as '登记人', sum(预交金额), sum(补交金额)
from YourTable
group by
登记时间, 领取登记人
) b
where 登记时间>#2008-3-1#本回答被网友采纳
相似回答