有三个表:A,B,C.A表的字段为:供应商代号,供应商名称,B表的字段为:单据号,供应商代号,入库数量。C表的字段为:
单据号,单据日期。现在需统计所有供应商9月份的总入库数量,包括入库数量为0的供应商。
表现形式即:
供应商代号 供应商名称 总数量
A 微软 100
B 用友 200
C SAP 0
D 神码 0
单据号,单据日期。现在需统计所有供应商9月份的总入库数量,包括入库数量为0的供应商。
表现形式即:
供应商代号 供应商名称 总数量
A 微软 100
B 用友 200
C SAP 0
D 神码 0
join C on B.单据号=C.单据号 where convert(varchar(7),单据日期,120)='2009-09'
group by A.供应商代号,A.供应商名称
select 供应商代号,供应商名称 sum(入库数量) from A inner join B
on A.供应商代号 =B.供应商代号
inner join C
on B.单据号 =C.单据号
where datepart(m,单据日期) = 9 group by 供应商代号,供应商名称 having sum(入库数量) = 0
from A left join B on A. 供应商代号=B.供应商代号 inner join C on B.单据号=C.单据号
where year (C.单据日期)='2009' and month(C.单据日期)='9'
from A left join B on A. 供应商代号=B.供应商代号 inner join C on B.单据号=C.单据号
where year (C.单据日期)='2009' and month(C.单据日期)='9' group by A.供应商代号,A. 供应商名称
a.供应商代号,a.供应商名称,isnull(sum(b.入库数量),0) as 总数量
from
a
join b on
a.供应商代号=b.供应商代号
join c on
b.单据号=c.单据号
group by
a.供应商代号,a.供应商名称
where
detapart(mm,单据日期)=7
a.供应商代号,a.供应商名称,isnull(sum(b.入库数量),0) as 总数量
from
a
join b on
a.供应商代号=b.供应商代号
join c on
b.单据号=c.单据号
where
detapart(mm,单据日期)=7
group by
a.供应商代号,a.供应商名称
select B.供应商代号, A.供应商名称,SUM(C.入库数量) as '总数量'
from
C left join B
ON C.单据号 = B.单据号
AND datediff(month, c.单据日期,'2009-09-01 12:10:09.3312722') = 0
Left join A
B.供应商代号 = A.供应商代号
group by B.供应商代号, A.供应商名称
select A.供应商代号,A.供应商名称 sum(B.入库数量) as 总数量 from A inner join B
on A.供应商代号 =B.供应商代号
inner join C
on B.单据号 =C.单据号
where datepart(m,C.单据日期) = 9
group by A.供应商代号,A.供应商名称 having sum(B.入库数量) = 0
select A.供应商代号,A.供应商名称 sum(B.入库数量) as 总数量
from A left join B
on A.供应商代号 =B.供应商代号
left join C
on B.单据号 =C.单据号
where datepart(m,C.单据日期) = 9
group by A.供应商代号,A.供应商名称
[color=#FF0000]应该不是用JOIN,它相当于 INNER JOIN [/color]