首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

明细表统计疏失了,详情请点击.

2013-02-24 
明细表统计出错了,详情请点击....业务关系是这样的:1.主表 租赁表2.一个租赁单对应多个结算单3.一个租赁单

明细表统计出错了,详情请点击....
业务关系是这样的:
1.主表 租赁表
2.一个租赁单对应多个结算单
3.一个租赁单对应多个机器

租赁单 (主表)
BillIDSType
1打印A型
2打印B型
3打印C型
4打印A型

结算单 (从表)
[ID]   BillID(billid就是租赁单的billid)        dMoney(金额)
13600.00
22405.50
3235454.00
41842.00

机器列表(从表)
[ID]   BillID(billid就是租赁单的billid)        Model(机器型号,不是主键,但是唯一)
14Sb50_S53
22fff_78aA
33sdfsdfs
42sdfsdfsd


然后是要做一个结算单明细表

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

热点排行