求二个sql语句解决方法
求二个sql语句
一张表
东西 位置 数量
物品A 位置1 1000
物品A 位置2 2000
物品B 位置1 4000
物品B 位置3 1000
物品C 位置2 1500
(位置字段范围是固定的:位置1-位置3)。
一、求得第一个sql语句是要得到下面这样的表:
日期 位置1 位置2 位置3
系统时间 5000 3500 1000
简单说就是需要统计某个系统时间点每个位置的所有物品的数量。比如原表中位置1中有物品A 1000个和物品B 4000个。所以位置1中总数有1000+4000=5000个。
二、求得第二个sql语句是要得到下面这样的表:
日期 物品A 物品B 物品C
系统时间 3000 5000 1500
和第一个根据位置统计不同,这里是在某个系统时间点根据每个物品来统计数量。比如原表中物品A在位置1和位置2总共有3000个
谢谢大家!
------解决思路----------------------
一张表
东西 位置 数量
物品A 位置1 1000
物品A 位置2 2000
物品B 位置1 4000
物品B 位置3 1000
物品C 位置2 1500
(位置字段范围是固定的:位置1-位置3)。
一、求得第一个sql语句是要得到下面这样的表:
日期 位置1 位置2 位置3
系统时间 5000 3500 1000
简单说就是需要统计某个系统时间点每个位置的所有物品的数量。比如原表中位置1中有物品A 1000个和物品B 4000个。所以位置1中总数有1000+4000=5000个。
二、求得第二个sql语句是要得到下面这样的表:
日期 物品A 物品B 物品C
系统时间 3000 5000 1500
和第一个根据位置统计不同,这里是在某个系统时间点根据每个物品来统计数量。比如原表中物品A在位置1和位置2总共有3000个
谢谢大家!
------解决思路----------------------
create table t (东西 varchar(30) , 位置 varchar(30) , 数量 int )
insert into t values('物品A', '位置1', 1000)
insert into t values('物品A', '位置2', 2000)
insert into t values('物品B', '位置1', 4000)
insert into t values('物品B', '位置3', 1000)
insert into t values('物品C', '位置2', 1500)
go
select GETDATE() ,
SUM( case when 位置 = '位置1' then 数量 else 0 end) 位置1 ,
SUM( case when 位置 = '位置2' then 数量 else 0 end) 位置2 ,
SUM( case when 位置 = '位置3' then 数量 else 0 end) 位置3
from t
select GETDATE() ,
SUM( case when 东西 = '物品A' then 数量 else 0 end) 物品A ,
SUM( case when 东西 = '物品B' then 数量 else 0 end) 物品B ,
SUM( case when 东西 = '物品C' then 数量 else 0 end) 物品C
from t
go
drop table t
位置1 位置2 位置3
----------------------- ----------- ----------- -----------
2014-12-20 10:42:56.280 5000 3500 1000
(1 行受影响)
物品A 物品B 物品C
----------------------- ----------- ----------- -----------
2014-12-20 10:42:56.280 3000 5000 1500
(1 行受影响)