怎么写sql语句?(50分)

  • 主题发起人 主题发起人 小田
  • 开始时间 开始时间

小田

Unregistered / Unconfirmed
GUEST, unregistred user!
sql2000三个表
db1主表:id ...
01
02
....
db2代码表:dm dmmc
001 电视
002 冰箱
003 手机
004 电脑
...
db3辅助表:id dm sl
01 001 2
01 003 1
01 004 1
02 001 1
02 002 2
...
在一个查询中要实现:
id ...电视 冰箱 手机 电脑 ...
01 2 1 1
02 1 2
...
该怎么写sql语句,谢谢!!
 
这是不可能的
 
怎么没人回答,行不通吗?
 
请用多表查询吗?
 
有点难哦
 
多层镶套
 
select c.id sum(case when dm=001 then sl else 0)as( ''+(select dmmc from b where b.dm=001)),
sum(case when dm=002 then sl else 0)as 冰箱,
sum(case when dm=003 then sl else 0)as 手机,
.....
from db3 c,db2
group by c.id,
 
不能通过!!
 
select a.id,b.dmmc,c.sl from db a,db2 b,db3 c
where a.id=c.id and b.dm=c.dm
order by id
group by id

我只会写SQL
嘿嘿
 
2个表的:
declare @tmp nvarchar(20)
declare @tmpmc nvarchar(30)
declare @SqlString nvarchar(3000)
set @SqlString='select id '
declare tmpCursor cursor local for
select dm,dmmc from b
open tmpcursor
fetch next from tmpcursor into @tmp,@tmpmc
while @@Fetch_Status=0
begin
set @Sqlstring=@SqlString+',sum(case when dm='''+@tmp+''' then sl else 0 end) as '+''''+@tmpmc+''''
fetch next from tmpcursor into @tmp,@tmpmc
end
close tmpcursor
deallocate tmpcursor
set @Sqlstring=@SqlString+' from c group by id'
exec (@Sqlstring)
 
接受答案了.
 

Similar threads

后退
顶部