sql 日期查询格式的问题,提示字符串转换时语法错误

来源:百度知道 编辑:UC知道 时间:2024/05/27 06:18:58
比如表A中:
日期 数量 物品
1月1日 200 A
1月1日 300 A
1月2日 100 B
1月3日 200 A

我希望得到的结果是:
物品 1月1日 1月2日 1月3日
A 500 0 200
B 0 100 0

SQL:

Declare @sql varchar(800)
set @sql = 'select 物品'
select @sql = @sql + ', sum(case 日期 when '+ 日期+' then 数量 else 0 end ) as '+ 日期+''
from (select distinct 日期 from A ) as mycb
select @sql = @sql+' from A group by 物品'

exec(@sql)

提示字符串转换时语法错误

帮帮忙!

将表结构拆分了
给你个事例

自己看看就知道了

--注:建表参考

************************************************

/*
有表A,结构如下:
A: P_ID P_Num S_ ID
1 10 01
1 12 02
2 8 01
3 11 01
3 8 03
其中:P_ID为产品ID,P_Num为产品库存量,S_ ID为仓库ID。
请用SQL语句实现将上表中的数据合并,合并后的数据为:
P_ID S1_ID S2_ID S3_ID
1 10 12 0
2 8 0 0
3 11 0 8
其中:S1_ ID为仓库1的库存量,S2_ ID为仓库2的库存量,S3_ ID为仓库3的库存量。
如果该产品在某仓库中无库存量,那么就是0代替。
*/
***************************************************************

create table A
(
p_id int,
p_num int,
s_id varchar(4)
)