明细表统计出错了,详情请点击....
业务关系是这样的:
1.主表 租赁表
2.一个租赁单对应多个结算单
3.一个租赁单对应多个机器
租赁单 (主表)
BillID SType
1 打印A型
2 打印B型
3 打印C型
4 打印A型
结算单 (从表)
[ID] BillID(billid就是租赁单的billid) dMoney(金额)
1 3 600.00
2 2 405.50
3 2 35454.00
4 1 842.00
机器列表(从表)
[ID] BillID(billid就是租赁单的billid) Model(机器型号,不是主键,但是唯一)
1 4 Sb50_S53
2 2 fff_78aA
3 3 sdfsdfs
4 2 sdfsdfsd
然后是要做一个结算单明细表
SELECT c.XX,c.xxxx...........
FROM dbo.结算单 a LEFT OUTER JOIN
dbo.租赁单 d ON a.BillID = d.ID left outer join
dbo.机器列表 c ON a.
BillID=c.
BillID
问题在红色部分(上面写的逻辑不符合要求的),如何取到对应 机器列表中 billid=a.billid 中的第一条记录即可.....
------解决方案--------------------你写的语句没有问题,关联也是正确的。
问题是你最后要得到什么结果?你使用left outer join,起始表和之后的关联表顺序是有关系的。
不同的要求,关联顺序也是不同的。
------解决方案--------------------SELECT c.XX,c.xxxx...........
FROM dbo.结算单 a LEFT JOIN dbo.租赁单 d
ON a.BillID = d.BillID
LEFT JOIN dbo.机器列表 c
ON a.BillID=c.BillID