SQL多表查询问题,急!

来源:百度知道 编辑:UC知道 时间:2024/06/10 03:20:27
主要是查以下几个表中的数量,以lspd4 为主,每个表都有相同的ID,要列出每个表中相同ID的数量。估计是WHERE的条件不对帮看下
select a.incode 编码, a.name 商品名称, a.sl 四月盘数, b.qty 收货数, c.qty 退货数 , d.qty 销售数 ,e.sl 六月盘数
from lspd4 a,lssh b,lsth c,lsxs d ,lspd6 e
where a.incode=b.incode and a.incode=c.code and a.incode=d.code and a.incode=e.incode
group by a.incode , a.name , a.sl , b.qty , c.qty , d.qty ,e.sl
lspd4表中的所有编码都要列出来,后面几个表的内容则以lspd4中的为主,如果没有数量为空

from 后你是给出了5个表,而且并没有连接起来
怎么可以按照四个表中的字段去group by呢! 肯定会出错

建议:在from子句,把几个表连接起来,之后再对连接之后的表进行分组

select tb3.incode 编码, tb3.[name] 商品名称,
isnull(tb3.sl,0) 四月盘数, isnull(tb3.qty,0) 收货数, isnull(tb3.qty,0) 退货数 ,
isnull(tb3.qty,0) 销售数 ,isnull(e.sl,0) 六月盘数
from
(
select tb2.*,d.qty 销售数
from
(
select tb1.*,c.qty 退货数
(
select a.incode 编码, a.[name] 商品名称, a.sl 四月盘数 ,b.qty 收货数
from lspd4 a left join lssh b on a.incode=b.incode
) as tb1 left join lsth c on tb1.incode=c.incode
) as tb2 left join lsxs d on tb2.incode=d.incode
) as tb3 left join lspd6 e on tb3.incode=e.incode
group by tb3.incode , tb3.[name] , tb3.sl , tb3.qty , tb3.qty , tb3.qty ,e.sl

select a.incode 编码, a.name 商品名称, a.sl 四月盘数,
sum(b.qty 收货数),
sum(c.qty 退货数) ,
sum(d.qty 销售数) ,
sum(e.sl 六月盘数)
from lspd4 a,lssh b,lsth c,lsxs d ,lspd6 e
where a left join b on a.incode=b.incode left join c on a.incod