在计数值中声明多个列

时间:2017-04-26 14:39:19

标签: sql sql-server

我正在尝试为计数器和相应的值定义多个计数值。这是我的代码:

DECLARE @RequestDate AS DATE = '2017-04-20'
;
DECLARE @POCounter INT;
DECLARE @POMax INT;
DECLARE @NewDate DATE;

SET @POCounter = 0;

SET @POMax = 
(
SELECT
    CUSTOMERPONUMBER,
    (
    SELECT 
    COUNT(CUSTOMERPONUMBER) 
    FROM DailyOpenOrders$ 
    WHERE
    RequestDate < @RequestDate
    ) 
FROM DailyOpenOrders$
WHERE
    RequestDate < @RequestDate
GROUP BY
    CUSTOMERPONUMBER
)

@POMax计数器是为了帮助我多次更新特定customerPO的日期。我打算在一个循环中增加POCounter,直到它到达每个customerPOnumber的@POmax计数器。

我这样做错了吗?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

@POMax是一个标量变量,一次只能保存一个值。

如果要保存一组值,表变量就是一个很好的工具:

1000

现在你可以遍历@MyTable,并为每个CustomerNumber循环从1到TheCount ......

DECLARE @MyTable TABLE
(
  ID int PRIMARY KEY IDENTITY(1,1),
  CustomerNumber varchar(50),
  [TheCount] int
)

INSERT INTO @MyTable(CustomerNumber, [TheCount])
SELECT CustomerNumber, COUNT(*)
FROM SomeTable
GROUP BY CustomerNumber