预算表 bgdata
id 预算金额bgvalue 实际发生额bgactual 预算项目bgitemid
1 23 10 1
2 40 11 1
3 50 22 1
4 30 9 2
5 22 10 2预算控制记录 bgctrlrecord
id bgdataid(预算表id) billid(单据id)
1 1 001
2 2 001
3 3 001
4 4 002
5 5 002单据表头表 bill
id billnum(单据编号) billername(填写人姓名)
001 xx1 张三
002 xx2 李四单据表体billentry
id billid purpose(费用用途) aomunt(费用金额) bgitemid
1 001 差旅费1月 10 1
2 001 差旅费2月 11 1
3 001 差旅费3月 22 1
4 002 书费1 9 2
5 002 书费2 10 2预算项目id
id name
1 差旅费
2 书费要求查询结果:
itemname bgactual billnum billername purpose
差旅费 10 xx1 张三 差旅费1月
差旅费 11 xx1 张三 差旅费2月
差旅费 22 xx1 张三 差旅费3月
书费 9 xx2 李四 书费1
书费 10 xx2 李四 书费2我的查询语句是select bgitem.name , bgdata.bgactual , bill.billnum , bill.billername
from bgdata
inner join bgctrlrecord
on bgctrlrecord.bgdataid = bgdata.id
left outer join bgitem
on bgitem.id = bgdata.bgitemid
lett outer join bill
on bill.id = bgctrlrecord.billid可以查出我想要结果的前四列。可是当我想取出billentry中的purpose字段的时候需要连接billentry表,在连接billentry表以前有已经有每个单据id对应多条记录,如果连接billentry表只能通过billid这个字段连接,此时会出现数据错误。本来xx1单据对应只有三条记录,再连接到billentry中取出相对应的purpose字段会对应3*3=9条记录,请问如何解决这个问题?
id 预算金额bgvalue 实际发生额bgactual 预算项目bgitemid
1 23 10 1
2 40 11 1
3 50 22 1
4 30 9 2
5 22 10 2预算控制记录 bgctrlrecord
id bgdataid(预算表id) billid(单据id)
1 1 001
2 2 001
3 3 001
4 4 002
5 5 002单据表头表 bill
id billnum(单据编号) billername(填写人姓名)
001 xx1 张三
002 xx2 李四单据表体billentry
id billid purpose(费用用途) aomunt(费用金额) bgitemid
1 001 差旅费1月 10 1
2 001 差旅费2月 11 1
3 001 差旅费3月 22 1
4 002 书费1 9 2
5 002 书费2 10 2预算项目id
id name
1 差旅费
2 书费要求查询结果:
itemname bgactual billnum billername purpose
差旅费 10 xx1 张三 差旅费1月
差旅费 11 xx1 张三 差旅费2月
差旅费 22 xx1 张三 差旅费3月
书费 9 xx2 李四 书费1
书费 10 xx2 李四 书费2我的查询语句是select bgitem.name , bgdata.bgactual , bill.billnum , bill.billername
from bgdata
inner join bgctrlrecord
on bgctrlrecord.bgdataid = bgdata.id
left outer join bgitem
on bgitem.id = bgdata.bgitemid
lett outer join bill
on bill.id = bgctrlrecord.billid可以查出我想要结果的前四列。可是当我想取出billentry中的purpose字段的时候需要连接billentry表,在连接billentry表以前有已经有每个单据id对应多条记录,如果连接billentry表只能通过billid这个字段连接,此时会出现数据错误。本来xx1单据对应只有三条记录,再连接到billentry中取出相对应的purpose字段会对应3*3=9条记录,请问如何解决这个问题?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货