0
私はカーソルSQL Serverの援助は
質問があるについて質問があります
SO75123(3 items) due Aug 12 2008 12:00AM is Shipped
私が持っているこの今のところ
DECLARE
@salesOrderID INT,
@salesOrderNum NVARCHAR(20),
@dueDate DATETIME,
@status NVARCHAR(20),
@totalDue MONEY,
@numDetail INT,
@count INT = 0;
DECLARE salesReportCursor CURSOR
FOR
SELECT Count(S.salesOrderID),p.SalesOrderNumber,p.Duedate, status =
CASE when p.status =1 THEN 'In Process'
when p.status =2 THEN ' Approved'
when p.status =3 THEN ' Backordered'
when p.status =4 THEN ' Rejected'
when p.status =5 THEN ' Shipped'
END
FROM Sales.SalesOrderHeader p, Sales.SalesOrderDetail s
WHERE p.SalesOrderID=s.SalesOrderID AND P.DueDate >= '2008' AND p.DueDate < '2009'
Group by p.SalesOrderNumber,p.Duedate,status
ORDER BY SalesOrderNumber DESC
私は約360行を取得するはずですが、私は1400のようになっています。エラーの原因となっているwhere句で何が間違っているか教えてください。データベースの
マイピクチャはhttp://www.2shared.com/photo/h2-jMQyP/AdventureWorks2008.html
3つのこと:それが1の場合)あなたはおそらく(この「宿題を」フラグはずです)、2)あなたは、おそらくSalesOrderHeaderとSalesOrderDetailの間で「内部結合を」やるべきことは、 ...と3)多分問題はあなたの「どこに」あるのでしょうか、あるいはあなたの「グループ」の*少ない*列を指定するべきでしょう – paulsm4
そして、あなたは2008年8月の予定に結果を限定しません。 – HABO
@ paulsm4次の週に私のテストのために練習しているこの宿題はありません – user1297398