declare @oinv_id int
declare @I int
select top 1 @oinv_id =max(分组序号) from oinv_id --获取最大的分组编号
print @oinv_id
set @I=1
while @I<@oinv_id --当@I大于@oinv_id时候跳出循环
SELECT
kp_id,kp_hth,
MAX(CASE 分组序号 WHEN @I THEN kp_rq ELSE 0 END) AS 'c1',
@I=@I+1
FROM oinv_ID
GROUP BY kp_id,kp_hth怎么一直显示:向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
请高手指教 怎么修改 谢谢!
declare @I int
select top 1 @oinv_id =max(分组序号) from oinv_id --获取最大的分组编号
print @oinv_id
set @I=1
while @I<@oinv_id --当@I大于@oinv_id时候跳出循环
SELECT
kp_id,kp_hth,
MAX(CASE 分组序号 WHEN @I THEN kp_rq ELSE 0 END) AS 'c1',
@I=@I+1
FROM oinv_ID
GROUP BY kp_id,kp_hth怎么一直显示:向变量赋值的 SELECT 语句不能与数据检索操作结合使用。
请高手指教 怎么修改 谢谢!
你这里是变量赋值的问题,
SELECT kp_id,kp_hth, MAX(CASE 分组序号 WHEN @I THEN kp_rq ELSE 0 END) AS 'c1',
@I=@I+1
你这里既是查询列,又是给变量赋值,这样写不行的。
可以这样:
while @I<@oinv_id --当@I大于@oinv_id时候跳出循环begin SELECT kp_id,kp_hth,MAX(CASE 分组序号 WHEN @I THEN kp_rq ELSE 0 END) AS 'c1',
FROM oinv_ID
GROUP BY kp_id,kp_hth
set @I=@I+1end