sql server sql使用变量

song_better 2007-12-27 10:00:03
declare @SQL char(400)
declare @location_id char(5)
set @location_id='gzb01'
-- declare @BeginDate char(10)
-- set @BeginDate='2007/12/01'
-- declare @EndDate char(10)
-- set @EndDate ='2007/12/04'
set @SQL='SELECT Full_Item_ID,
Item_ID,
sum(Month_End_Qty) QTY FROM tblME200711
WHERE
Location_ID='+@location_id+' and Month_End_Qty is not null
GROUP BY Full_Item_ID,Item_ID
Having sum(Month_End_Qty)<>0'
exec(@SQL)
请帮忙看看这个SQL语句有什么问题,运行时总是报错,'GZB01'不存在!
另外,如果Where条件语句中有字符,应该怎么写,请帮忙,谢谢!
...全文
63 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2007-12-27
  • 打赏
  • 举报
回复
declare   @SQL   char(400) 
declare @location_id char(5)
set @location_id='gzb01'
-- declare @BeginDate char(10)
-- set @BeginDate='2007/12/01'
-- declare @EndDate char(10)
-- set @EndDate ='2007/12/04'
set @SQL='SELECT Full_Item_ID,
Item_ID,
sum(Month_End_Qty) QTY FROM tblME200711
WHERE
Location_ID='''+@location_id+''' and Month_End_Qty is not null
GROUP BY Full_Item_ID,Item_ID
Having sum(Month_End_Qty) <> 0'
exec(@SQL)
wzy_love_sly 2007-12-27
  • 打赏
  • 举报
回复
declare @sql varchar(8000),@location_id varchar(20)
set @location_id = '你好'
select @sql='SELECT Full_Item_ID,Item_ID, sum(Month_End_Qty) QTY FROM tblME200711
WHERE Location_ID='''+@location_id+''' and Month_End_Qty is not null
And Transaction_Source=''GNE''
GROUP BY Full_Item_ID,Item_ID
Having sum(Month_End_Qty) <> 0'
print @sql

打印下看看,看看动态语句用法

SELECT Full_Item_ID,Item_ID, sum(Month_End_Qty) QTY FROM tblME200711
WHERE Location_ID='你好' and Month_End_Qty is not null
And Transaction_Source='GNE'
GROUP BY Full_Item_ID,Item_ID
Having sum(Month_End_Qty) <> 0

song_better 2007-12-27
  • 打赏
  • 举报
回复
有哪位大哥,请帮忙看看,谢谢!
song_better 2007-12-27
  • 打赏
  • 举报
回复
谢谢 wzy_love_sly!
我想问一下,为何这里要用两个'?
还有一个问题,
@SQL='SELECT Full_Item_ID,Item_ID, sum(Month_End_Qty) QTY FROM tblME200711
WHERE Location_ID='''+@location_id+''' and Month_End_Qty is not null
And Transaction_Source='GNE'
GROUP BY Full_Item_ID,Item_ID
Having sum(Month_End_Qty) <> 0'

Where 字句中 Transaction_Source='GNE' 应该怎么写,请帮忙!谢谢!
wzy_love_sly 2007-12-27
  • 打赏
  • 举报
回复
@@location_id没多个@

好象我自己弄错了
liangCK 2007-12-27
  • 打赏
  • 举报
回复
declare @SQL varchar(400)
declare @location_id char(5)
set @location_id='gzb01'
set @SQL='SELECT Full_Item_ID,Item_ID, sum(Month_End_Qty) QTY FROM tblME200711
WHERE Location_ID='''+@location_id+''' and Month_End_Qty is not null
GROUP BY Full_Item_ID,Item_ID
Having sum(Month_End_Qty) <> 0'
exec(@SQL)
wzy_love_sly 2007-12-27
  • 打赏
  • 举报
回复
sorry 看眼花了
wzy_love_sly 2007-12-27
  • 打赏
  • 举报
回复
declare   @SQL   char(400)
declare @location_id char(5)
set @location_id='gzb01'
set @SQL='SELECT Full_Item_ID,
Item_ID,
sum(Month_End_Qty) QTY FROM tblME200711
WHERE
Location_ID='''+@location_id+''' and Month_End_Qty is not null
GROUP BY Full_Item_ID,Item_ID
Having sum(Month_End_Qty) <> 0'
exec(@SQL)

@@location_id多个@
Location_ID='''+@location_id+''' 一边加2个''

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧