我正在尝试为计数器和相应的值定义多个计数值。这是我的代码:
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计数器。
我这样做错了吗?有人可以帮忙吗?
答案 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