首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

大侠,帮忙看看到SQL底哪里出错了?

2012-01-18 
大侠,帮忙看看到SQL底哪里出错了?在线等、、、、、表一:(仪器入库统计信息)仪器型号, 仪器名称,仪器类型,仪器状

大侠,帮忙看看到SQL底哪里出错了?在线等、、、、、
表一:(仪器入库统计信息)
仪器型号, 仪器名称,仪器类型,仪器状态,仪器单价,入库数量I,生产厂家

表二:(仪器出库统计信息)
仪器型号, 仪器名称,仪器类型,仪器状态,仪器单价,出库数量O,借用单位

预得到表三:

仪器型号, 仪器名称,仪器类型,仪器状态,仪器单价,总数量(入库数量I之和),已出数量(出库数量O之和),现库存数量(入库数量I之和-出库数量O之和)

下面是SQL 语句:
SQL = "select r.仪器型号,r.仪器名称,r.仪器类型,r.仪器状态,r.仪器单价,sum(r.入库数量I) as 总数量 ,sum(c.出库数量O) as 已出数量,sum(r.入库数量I)-sum(c.出库数量O) as 现库存数量 from 仪器入库统计信息 r inner join 仪器出库统计信息 c on r.仪器型号=c.仪器型号 Group by r.仪器型号, r.仪器名称,r.仪器类型,r.仪器状态,r.仪器单价"

问题是:
最后显示出来的总数量不对,已出数量正确,现存数量(正确是前两项差值)

请高人帮忙,或者重新给个SQL语句!!

[解决办法]
你确定你的数据本身就是对的没?这个你验证了没有?

试试看下面的
SQL = "select r.仪器型号,r.仪器名称,r.仪器类型,r.仪器状态,r.仪器单价,sum(r.入库数量I) as 总数量 ,sum(c.出库数量O) as 已出数量,sum(r.入库数量I)-sum(c.出库数量O) as 现库存数量 from 仪器入库统计信息 r left outter join 仪器出库统计信息 c on r.仪器型号=c.仪器型号 Group by r.仪器型号, r.仪器名称,r.仪器类型,r.仪器状态,r.仪器单价"
[解决办法]

探讨
我认为你的表设计有点问题,一般来说仪器型号, 仪器名称,仪器类型...这种属应该是有独立的属性表,这样入库表出库表只要二项:仪器型号(假如这是唯一),数量...如此一来统计的时候出入库存表分别left join仪器属性表就可以得出正确的结果...而你现在的情况是,除非你入出库二个表的的仪器系列能一一对应,否则得不到正确结果.....

[解决办法]
为防止数据有意外问题,建议你先统计数量,再联合查询.
[解决办法]
你要是给出CREATE TABLE 语句和数据的话,我估计马上就有人帮你写出来。
因为我们都不知道你出的问题,而你又不直接给出测试数据。
写SQL语句最好参照测试数据进行,有错马上改~~

热点排行