select a.goods,
(select sum(case when storage='01' then qty else 0 end) from table where goods=a.goods) 01,
(select sum(case when storage='02' then qty else 0 end) from table where goods=a.goods) 01,
from
(select goods from table group by goods)a
(select sum(case when storage='01' then qty else 0 end) from table where goods=a.goods) 01,
(select sum(case when storage='02' then qty else 0 end) from table where goods=a.goods) 01,
from
(select goods from table group by goods)a
解决方案 »
- 这个sql如何优化
- 怎样初始化数据库表的id
- sql查询就死机
- 请教一个SQL SERVER的奇怪问题
- 我用vs.net链接sql2000 ser 在表中有字段为nvarchar类型长度为4000 然后在此字段中复制1000个字的英文可是我发现文章做后被截了一些
- 急!!我的win98个人版db2一运行控制中心就出现:[ibm][jdbc Driver]CLI0622E存取JDBC管理服务扩展名时出错。
- 怎样为全局唯一标识符列创建 DEFAULT 定义,又怎样使用 NEWID 功能生成全局唯一数值。
- SQL高级查询问题?
- 临时数据库前面的一个#号和两个#号有什么区别?另外,两个用户同时访问一个处理临时表程序会不会造成临时表使用上的冲突?
- sqlserver7 的安全模式问题
- 请教,这个SQL的写法?
- 好菜的问题呀::windows 98能不能安装SQL Server 2000?
sum(case storage when '02' then 1 else 0 end )
from table1
group by goods
from
(select distinct goods from Utable) as T
难道我要把所有的Storage里的值都列出来吗?
sum(case storage when '02' then qty else 0 end) '02'
from #t
group by goodsor:declare @sql varchar(8000)
set @sql = 'select goods,'select @sql = @sql + 'sum(case storage when '''+storage+'''
then qty else 0 end) as ['+storage+'],'
from (select distinct storage from #t) aselect @sql = left(@sql,len(@sql)-1) + ' from #t group by goods'exec(@sql)