1
변수
를 사용하여 하나의 열을 기준으로 행과 그룹을 표시합니다. 같은 SalesOrderID
와 제품 분류 및 계산 될 수 있도록사용 커서 내가 두 개의 테이블이
SalesOrderNumber1 (3 items) was shipped.
SalesOrderNumber2 (4 items) was shipped.
SalesOrderNumber3 (2 items) was shipped.
: 어떻게 내가 좋아하는 뭔가를 인쇄 할 수 있습니까? 이 내가 커서 뭐가이다 : 나는 다음 각 행에 대해 1로 처음 @numdetail
를 설정 곳이 때문에 BEGIN 이후의 생각
SalesOrderNumber1 (2 items) was shipped.
SalesOrderNumber2 (2 items) was shipped.
SalesOrderNumber3 (2 items) was shipped.
:처럼 내 결과가 보이는 무엇
DECLARE
@salesOrderID INT,
@salesOrderNum NVARCHAR(25),
@dueDate DATETIME,
@status tinyint,
@message varchar(80),
@numDetail INT,
@count INT = 0,
@astatus varchar(10);
DECLARE salesReportCursor CURSOR
FOR
select s.SalesOrderID, SalesOrderNumber,DueDate, Status
FROM [Sales].[SalesOrderDetail] s
join Sales.SalesOrderHeader h
on s.SalesOrderID=h.SalesOrderID
where
h.DueDate between '2008-08-01' and '2008-08-31'
group by SalesOrderNumber,s.SalesOrderID,DueDate, Status
Order by SalesOrderNumber desc
FOR READ ONLY
OPEN salesReportCursor
FETCH NEXT from salesReportCursor
INTO @salesOrderID, @salesOrderNum , @dueDate , @status;
WHILE @@FETCH_STATUS = 0
BEGIN
set @numDetail= 1
if @salesOrderNum [email protected]
set @[email protected]+1
Set @astatus=
case when @status=1 then 'In process'
when @status=2 then 'Approved'
when @status=3 then 'Backordered'
when @status=4 then 'Rejected'
when @status=5 then 'Shipped'
when @status=6 then 'Cancelled'
end
Select @message=cast(@salesOrderNum as varchar)
+' ('+ cast(@numDetail as varchar)+' items) due '+
cast(@dueDate as varchar) +' is '+ @astatus
set @[email protected]+1
Print @message
FETCH NEXT from salesReportCursor
INTO @salesOrderID, @salesOrderNum , @status;
END
CLOSE salesReportCursor
DEALLOCATE salesReportCursor
그것을 1로 더하십시오. 동일한 제품을 그룹화하고 계산하는 방법을 궁금합니다. SalesOrderID
?
고마워요! 그것은 매우 도움이되었습니다. –