原在access别人这样写:transform sum(quantity) as quantity select color from table1 group by color pivot invert(size)
目的:在原数据库中数据是这样
size color quantity
1 blue
目的:在原数据库中数据是这样
size color quantity
1 blue
解决方案 »
- 有关读取Txt文件的输入格式错误,求高人指点
- VB如何解析8583包
- 请教VB中数据库的问题
- 循环判断与处理问题,帮帮忙,急
- ACCESS中能一个成绩总分排名,实现类似Excel中RANK函数的功能,能做到吗?
- 急急急!!!在線等。確定同目錄下是否存在指定的文件
- 简单问题,怎样获取控件datagrid用户选择的行,或者说取得焦点的行!该控件对应是一个ACC表,取得所选择的数据库纪录更好!
- 关于DDE
- 大家救我:关于向sql里存储图片的问题,怎样从sql里存储和调入图片,望提供详细的源码,谢谢!
- 在WIN2000下用ExitWindowsEx怎么不行。(直接退出WIN2000)!!!!
- VB如何制作一个能写入自身的程序?
- 数据库很大,如果全部打开会不会很占内存?
目的:在原数据库中数据是这样
size color quantity
1 blue 1
1 red 2
2 black 2
1 black 4
数据有重复的,要累计要达到输出是这样的表
size-> 1 2
black 4 2
blue 1
red 2
最终表是以size为行,color为列,当中的数字是经过统计的。如何用sql写在sql server中实现啊
from 表
group by size,color
即象解答例子中,当quarter可以取不止1-4的值,不固定应该如何处理
create table ztable(项目 int, 日期 varchar(10),单号 int,品名 varchar(50),数量 int)
insert into ztable select 1,'4-9' ,18, '電板', 1500
insert into ztable select 2,'4-10',8 , '模組', 900
insert into ztable select 3,'4-11',18, '模組', 1500
insert into ztable select 4,'4-14',17, '電板', 1500
declare @sql varchar(8000)set @sql='select 项目,日期,单号'
select @sql = @sql + ',sum(case 品名 when '''+品名+''' then 数量 else 0 end) as '+品名
from (select distinct 品名 from ztable) as a
select @sql = @sql+' from ztable group by 项目,日期,单号'exec(@sql)
drop table ztable-- 结果如下:-- 项目 日期 单号 電板 模組
-- ----------- ---------- ----------- ----------- -----------
-- 1 4-9 18 1500 0
-- 2 4-10 18 0 900
-- 3 4-11 18 0 1500
-- 4 4-14 17 1500 0
declare @ table(department nvarchar(50), goodsname nvarchar(50),quantity int)
insert into @ values('部门M' , '货品A' , '100')
insert into @ values('部门M' , '货品B' , '3000')
insert into @ values('部门N' , '货品C' , '5')
insert into @ values('部门N' , '货品B' , '200')要得到结果:
department 货品A 货品B 货品C
------------- ---------- --------- ---------
部门M 100 3000 0
部门N 0 200 5select * into temp from @
declare @sql varchar(8000)
set @sql = 'select department'
select @sql = @sql + ',sum(case goodsname when '''+goodsname+''' then quantity else 0 end) as '+goodsname
from (select distinct goodsname from temp) as a
select @sql = @sql+' from temp group by department'exec(@sql)drop table temp