Zřetelný záznam Problém v MS SQL Server 2008 dotazu

hlasů
0

Mám dotaz k načtení celkový Stav objednávky, které mají hodnotu 1 a 5. Jak se Sum jen odlišný OD.OrderStatus = 2, jak může existovat více záznamů v tabulce OrderDetails se Stav objednávky jako 2.

Prosím pomozte

SELECT O.OrderDate,
Sum(Case When OD.OrderStatus = 2 Then 1 Else 0 End) AS OrdersOffered,
Sum(Case When OD.OrderStatus = 1 Then 1 Else 0 End) AS OrdersAccepted
FROM Orders O,OrderDetails OD
Where O.Order_ID=OD.Order_ID
GROUP BY OrderDate
Položena 27/08/2009 v 02:11
zdroj uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
1

Takže, chcete, aby to bylo 1, bez ohledu na to, kolik máte? Možná použít podepsat?

SELECT O.OrderDate
  ,SIGN(Sum(Case When OD.OrderStatus = 2 Then 1 Else 0 End)) AS OrdersOffered
  ,Sum(Case When OD.OrderStatus = 1 Then 1 Else 0 End) AS OrdersAccepted
FROM Orders O
  JOIN OrderDetails OD  ON O.Order_ID=OD.Order_ID
GROUP BY OrderDate
Odpovězeno 27/08/2009 v 02:15
zdroj uživatelem

hlasů
0

Stačí použít poddotaz na pomoc s výsledkem.

SELECT 
O.OrderDate, 
Sum(Case When OD.OrderStatus = 2 Then 1 Else 0 End) AS OrdersOffered, 
Sum(Case When OD.OrderStatus = 1 Then 1 Else 0 End) AS OrdersAccepted 
FROM Orders O inner join
    (Select distinct Order_ID,OrderStatus 
    from OrderDetails) OD on O.Order_ID=OD.Order_ID
GROUP BY OrderDate 

By měla stačit ...

Odpovězeno 19/07/2011 v 17:45
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more