日期:2014-05-18  浏览次数:20528 次

请教查询提示未定义变量错误
DECLARE @a Table
 ( PersonID int,
  Surname varchar(50),
  Firstname varchar(50)
  ) 

DECLARE @b Table
 ( PersonID int,
  TotalPaymentPlanFee int
 )  
 
INSERT INTO @a
 SELECT DISTINCT
  Person.ID AS PersonID, Person.Surname, Person.Firstname, 
FROM Person
   
INSERT INTO @b
 SELECT t.EntityID AS PersonID, SUM(t.GrossAmount) AS TotalPaymentPlanFee
 FROM Transactions t
 Group By t.EntityID
 
select @StudentPaymentPlan.PersonID, @PaymentPlanFee.TotalPaymentPlanFee
 from @StudentPaymentPlan
  inner join @PaymentPlanFee ON @StudentPaymentPlan.PersonID = @PaymentPlanFee.PersonID
 
我建立了两个变量表,并分别向这两个变量表中插入数据,当我从这两个变量表中抽取数据的时候,提示说“要声明这两个表”
 
请教如何解决这个问题?
 

------解决方案--------------------
SQL code


select A.PersonID, B.TotalPaymentPlanFee
 from @StudentPaymentPlan A 
  inner join @PaymentPlanFee  B ON A.PersonID = B.PersonID

------解决方案--------------------
SQL code


--这两个表变量不存在啊
@StudentPaymentPlan 
@PaymentPlanFee  

select A.PersonID, B.TotalPaymentPlanFee
 from @StudentPaymentPlan A 
  inner join @PaymentPlanFee  B ON A.PersonID = B.PersonID

------解决方案--------------------
一个是表 一个是表变量 不要混淆了。
------解决方案--------------------
需要将你的这些所有代码选中执行才可以。
------解决方案--------------------
你这个是表变量,不是表。使用和普通变量一样,要在一个会话中全部选中执行的。
------解决方案--------------------
--我改成这样居然可以, 不知道是为什么
select a.PersonID, b.TotalPaymentPlanFee
 from @a a
inner join @b b ON a.PersonID = b.PersonID

------解决方案--------------------
只能用别名进行访问表变量中的字段