使用一个变量

时间:2016-02-04 13:34:28

标签: sql-server tsql

我的SQL知识非常有限,这似乎应该很容易,但我无法弄清楚。

我有两个使用相同where子句运行的查询。以前,我已将该号码粘贴在where子句中两次。我认为必须有一种更简单的方法,所以我发现你可以做变量。

我的问题是在第一个查询中声明变量时,它会忘记它并且不会为第二个查询运行它。我可以解释很多术语,但下面的简单查询应该更好地解释它。第二个查询失败并说

  

必须声明标量变量@p_repid

我在第一个查询中声明的

DECLARE @p_repid int=3427115
select fldRBuddyId, count(fldRBuddyId) "Repeats"
from tblMsgsOnAir_Type8 typ8
where fldCBuddyId = @p_repid
group by fldRBuddyID
having count(fldRBuddyId) > 1
order by "Repeats" desc
go

select FLDREPID,moa.FLDTGBID,tt.FLDNAME, count(*) "Count"
from TBLMSGSONAIR_1 moa
join TBLTOWERS_1 tt on moa.FLDTGBID=tt.FLDTGBID
where  fldrepid = @p_repid
group by  FLDREPID,moa.FLDTGBID,tt.FLDNAME
order by "Count" desc
go

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

删除两个语句之间的GO。那是MS SQL Server的批处理分隔符。

答案 1 :(得分:0)

如果您使用" GO"命令所有声明的变量都消失了。 尝试删除" GO"在中间。