SQL Server 2005 ВНУТРЕННЕЕ СОЕДИНЕНИЕ - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть две таблицы, сгруппированные по OrderID.

Что-то вроде:

Orders.OrderID
OrderDetails.OrderID

Я пытаюсь вызвать столбец из таблицы OrderDetails, но янужно в таблице Orders.

Мне нужно вызвать JOIN или INNER JOIN или GROUP BY, где я могу сгруппировать OrderDetails с таблицей Orders и где OrderID отображение совпадения OrderDetails.ProductCode.Поскольку это едва ли имеет смысл, вот мой текущий запрос:

SELECT 
    Orders.OrderID, Orders.OrderDate, Orders.ShipLastName, Orders.ShipFirstName, 
    Orders.ShipCity, Orders.ShipState, Orders.Order_Comments, Orders.OrderNotes, 
    Orders.ShipPhoneNumber, Orders.ShipDate
FROM Orders 
WHERE Orders.OrderStatus = 'Shipped'  
AND Orders.ShipDate > DATEADD(Day, Datediff(Day,0, GetDate() -20), 0)
AND Orders.ShipDate < DATEADD(Day, Datediff(Day,0, GetDate() -13), 0)

В основном я хотел бы SELECT OrderDetails.ProductCode, но сначала нужно сгруппировать их по OrderID, поскольку они находятся в разных таблицах..

Спасибо

Ответы [ 3 ]

0 голосов
/ 27 декабря 2011

Попробуйте это:

SELECT o.OrderID, o.OrderDate, o.ShipLastName, o.ShipFirstName,
       o.ShipCity, o.ShipState, o.Order_Comments, o.OrderNotes,
       o.ShipPhoneNumber, o.ShipDate
FROM OrderDetails od
INNER JOIN Orders o ON o.OrderID = od.OrderID
WHERE o.OrderStatus = 'Shipped'  
AND o.ShipDate > DATEADD(Day, Datediff(Day, 0, GetDate() -20), 0)
AND o.ShipDate < DATEADD(Day, Datediff(Day, 0, GetDate() -13), 0)

Затем вы можете добавить все необходимые данные из таблицы OrderDetails в список столбцов (в противном случае вы увидите идентичные строки для каждого уникального OrderID в OrderDetails).

0 голосов
/ 05 марта 2012

Благодаря Андрею М.И. нашел это и все заработало!

0 голосов
/ 27 декабря 2011

Попробуйте

SELECT Orders.OrderID, Orders.OrderDate, Orders.ShipLastName, Orders.ShipFirstName, Orders.ShipCity, Orders.ShipState, Orders.Order_Comments, Orders.OrderNotes, Orders.ShipPhoneNumber, Orders.ShipDate, OrderDetails.[COLUMNNAME_HERE]
FROM Orders, OrderDetails
WHERE Orders.OrderID = OrderDetails.OrderID AND 
Orders.OrderStatus = 'Shipped' AND
AND Orders.ShipDate > DATEADD(Day, Datediff(Day,0, GetDate() -20), 0)
AND Orders.ShipDate < DATEADD(Day, Datediff(Day,0, GetDate() -13), 0)
...