求一个SQL语句。 - MS-SQL Server / 应用实例
假设SQL数据表如不:
id field A field B ...
1 AA S1
2 AA S2
3 AA S3
4 AA S2
5 B S2
6 C S3
7 D S1
8 D S1
9 D S2
10 D S2
其中FIELD B的取值范围是有限的,要求得到以下结果:
FIELD A S1 S2 S3(上表只有三种取值)
AA 1 2 1
B 1
C 1
D 2 2
请问SQL 语句该如何写?
SQL code:
--既然fieldB有限那就可以写死
select FieldA,
S1=sum(case when FieldB='S1' then 1 else 0 end),
S2=sum(case when FieldB='S2' then 1 else 0 end),
S3=sum(case when FieldB='S3' then 1 else 0 end)
from [Table]
group by FieldA
SQL code:
select FieldA,
S1=sum(case when FieldB='S1' then 1 else 0 end),
S2=sum(case when FieldB='S2' then 1 else 0 end),
S3=sum(case when FieldB='S3' then 1 else 0 end)
from [Table]
group by FieldA
传说中的行列转换
精华帖
很经典
SQL code
Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.c
相关问答:
sql的软件在哪里可以下啊!在网上找了蛮多都用不了啊
随便搞一D版吧,
迅雷第一个就可以用
2000,2005都这样
http://119.147.41.16/down?cid=0698C2D64D7D637D90A6D2482298E6717D4F15CD&t=2&fmt=-1 ......
字段1,字段2.....字段N,Status,ParentID
1,Name1....test1,1,99
1,Name1....test1,3,99
1,Name2....test2,1,101
1,Name2....test2,3,101
1,Name3....test3,2,101
1,Name1....test1,4,101
想要的结果是:
1,Na ......
我觉得mysql和sqlserver有共同的地方:
有个问题是关于表的锁问题:
进程A 进程B
select * from user where id in lock share mode(共享锁)
&nb ......
有TABLEA 字段为 采购单号、行号、物料编码、入库日期
现想按照物料编码查询最大入库日期
语句如下:
SELECT 采购单号、行号、物料编码、入库日期 from TABLEA A WHERE 入库日期=(SELECT MAX(入库日期 ......
原SQL语句SQL code:
SELECT t6.FName '操作工',t1.FDate '日期',t5.FName '制单人',t3.FName '设备',t4.FName '班制',
t7.FBillNo '工艺指令单号',t8.FName '岗位',t2. ......