在SQL Server中声明表变量问题

时间:2018-12-17 03:51:23

标签: sql-server declare

我想声明一个表变量,我按照this page中的步骤进行操作,但是在行SELECT @StdRevenue;上遇到错误。似乎我需要声明该变量-我做了。

Purchasing.ProductVendor

enter image description here

我的代码

DECLARE @StdRevenue TABLE
(
  ProductID int, 
  Revenue money
);

--insert values to columns
INSERT INTO @StdRevenue (ProductID, Revenue)
    SELECT ProductID, StandardPrice * OnOrderQty 
    FROM Purchasing.ProductVendor
    GROUP BY ProductID;

SELECT @StdRevenue;

3 个答案:

答案 0 :(得分:2)

希望下面的查询对您有所帮助。...

Create table #temp

(
id int,
price varchar(5),
qty int
)

insert into #temp values(1,'50',1)

insert into #temp values(2,'500',4)

insert into #temp values(3,'100',6)



--Select All queries together

DECLARE @StdRevenue TABLE
(
  ProductID int, 
  Revenue money
);

--insert values to columns

INSERT INTO @StdRevenue (ProductID, Revenue)
    SELECT id, price * qty 
    FROM #temp


SELECT * from @StdRevenue;

----直到这里

答案 1 :(得分:2)

使用

  

SELECT * FROM @StdRevenue;

代替

  

选择@StdRevenue;

DECLARE @StdRevenue TABLE
(
  ProductID int, 
  Revenue money
);

--insert values to columns
INSERT INTO @StdRevenue (ProductID, Revenue)
    SELECT ProductID, StandardPrice * OnOrderQty 
    FROM Purchasing.ProductVendor
    GROUP BY ProductID;

SELECT * FROM @StdRevenue;

答案 2 :(得分:1)

尝试以下代码

DECLARE @StdRevenue TABLE
(
  ProductID int, 
  Revenue money
);

--insert values to columns
INSERT INTO @StdRevenue (ProductID, Revenue)
    SELECT 1, 2

SELECT * from @StdRevenue;

您在这里错过了像* from这样的表名之前写@StdRevenue