没信心了,access中sql的左右连接!(200分)

  • 主题发起人 主题发起人 江西的delphi
  • 开始时间 开始时间

江西的delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
d5,ado,access2000
销售表A 销售编号 房屋编号
应收款表B 自增ID 销售编号 应收金额 截止日期
缴款表C 自增ID 销售编号 缴款金额 缴款日期

最后要统计出
销售编号 房屋编号 总应收款 总已缴款 总欠款 到期未付总额


注意:
统计结果不要出现倍数关系。
用一条sql。
销售表A中的销售编号是关键字。
应收款表B的自增ID是关键字,应收款表B的销售编号会有重复。
缴款表C的自增ID是关键字,缴款表C的销售编号会有重复。
应收款表B和缴款表C没有别的关系,只有通过销售编号关连(可能一笔应收金额分几次缴)。
总欠款=(总应收款-总已缴款)
到期未付总额是按当前日期统计(缴款表总金额-截止日期在今天以前的应收款总金额)。
注意access的左右连接!
 
答案类似下面的:
select Sell.SellID as SellID,
Sell.HouseID as HouseID,
A.DealTotal as DealTotal,
B.PayTotal as PayTotal,
(DealTotal-PayTotal) as NoPay,
C.APay-PayTotal
from
((Sell left outer join
(select SellID,SUM(DealMoney) as DealTotal from Deal group by SellID) as A
on Sell.SellID=A.SellID)
left outer join
(select SellID,SUM(PayMoney) as PayTotal from Pay group by SellID) as B
on Sell.SellID=B.SellID)
left outer join
(select SellID,SUM(DealMoney) as APay from Deal where LimitDate<=Now() group by SellID) as C
on Sell.SellID=C.SellID
 
请班主帮我结束问题,小声问一句,分可不可以收回")"
 
to:mlzhou
是不是想捡个。。。
 
select a.销售编号,a.房屋编号,sum(select b.应收金额 from b where b.销售编号=
a.销售编号) as 总应收,sum(select c.缴款金额 from c where c.销售编号=a.销售编号)
as 总缴款,(总应收-总缴款) as 总欠款,sum(select b.应收金额 from b where b.销售编号=
a.销售编号 and b.截止日期<=当前日期) as 到期未付总额 from a,b,c
 
好象access不支持连接,我以前也做过,放在sql server2000中分析好好的,可复制到access中
来之后,就是通不过,还是不要连接了,换一种方式写吧。
 
to:all
谢谢各位参与,答案在刚提出问题时其实已做出来了(是ID:1176813 )
只是我刚提出问题时不能结束问题,现在就发工资!

 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部