2014-02-27 2 views
0

주어진 "CustomerId"에 대해 다른 테이블의 열 ("CompanySales")에서 관련 값 4 개를 가져와야합니다.MSSQL : 다른 테이블에서 여러 값을 가져 오는 방법

두 테이블을 조인하고 아래 쿼리를 사용하여 다른 테이블의 열에서 2 개의 "CompanySales"값을 가져올 수 있습니다.

나는이 4 개 값을 얻을해야합니까 어떻게

(I는 "WeekNumber"= 1,2,3에 대한 CompanySales이 필요하고 4)

이것은 내가 "Weeknumber"를 "CompanySales"를 확보해야하는 SQL 쿼리입니다 = 1 및 2 :

Declare @TempTable1 table 
(
    CustomerID INT, 
    CustomerName Varchar (50), 
    CompanySales DEC (8,2), 
    WeekNumber INT 
) 
INSERT INTO @TempTable1 ("CustomerID","CustomerName", "WeekNumber") 
SELECT  Customer.CustomerID, Customer.CustomerName, Company.WeekNumber, company.Sales 
FROM   Customer INNER JOIN 
        Company ON Customer.CustomerID = Company.CustomerID; 
With tblDifference as 
(
Select Row_Number() OVER (Order by WeekNumber) as RowNumber,CustomerID,CustomerName, companysales, WeekNumber from @TempTable1 
) 
Select Top (50) cur.CustomerID, Cur.CustomerName, Cur.WeekNumber as CurrentWeek, Prv.WeekNumber as PreviousWeek, Cur.CompanySales as CurrentSales,  Prv.CompanySales as PreviousSales, CAST(((Cur.CompanySales-Prv.CompanySales)/Prv.CompanySales)*100 As Decimal(8,2)) as PercentChange from 
tblDifference Cur Left Outer Join tblDifference Prv 
On Cur.CustomerID=Prv.CustomerID 

Where cur.WeekNumber = 1 AND prv.WeekNumber = 2 
Order BY PercentChange ASC 
+0

Where 절에 2 개의 AND 문을 추가하면됩니까? – Hoh

+0

'RowNumber' 열은 무엇입니까? 당신은 당신의 질의 어디서나 그것을 사용하지 않는 것 같습니다. –

답변

0

cur.WeekNumber 1에서 4 사이에 추가하는 것은 어떻습니까?

+0

Mandar 님, 귀하의 제안을 완전히 이해하지 못했습니다. 당신은 명확히 할 수 있습니까? 어쩌면 시도 할 몇 가지 제안 구문을 제공 할 수 있습니까? 감사! – Eoghanon

+0

내가 올바르게 이해할 경우 주 번호 1 ~ 4에 대한 데이터가 필요합니다. 다른 답변에서 제안한 것처럼 2 개의 더 많은 무기를 추가하거나 주 번호가 항상 순차적이면 where.WekNumber를 1에서 4 사이의 where 절로 사용해보십시오. –

관련 문제