Inquiridor
Dúvida em SQL - Select

Pergunta
-
Boa noite
Estou fazendo um trabalho com base na tabela Northwind.
Tenho as seguintes colunas com alguns atributos:
- Tabela Orders - (Pedidos)
OrderID (PK) - (Codigo do Pedido)
CustumerID (FK) - (Codigo do Cliente)
EmployeeID (FK) - (Codigo do Vendedor)
OrderDate - (Data)
Freigth - (Frete)
- Tabela Order Details - (Itens do Pedido)
OrderID (PK) - (Codigo do Pedido)
ProductID (FK) - (Codigo do Produto)
UnitPrice - (Preço unitário do Produto)
Quantity - (Quantidade do Produto)
Discount - (Desconto)
- Tabela - (Vendedor)
EmployeeID (PK) - (Codigo do Vendedor)
FirstName - (Nome do Vendedor)
- Tabela Customers - (Cliente)
CustomerID (PK) - (Codigo do Cliente)Preciso fazer um SELECT para Consultar histórico de pedidos (Orders) de um Cliente (CustomerID), exibir apenas o código do pedido (OrderID), a data do pedido (OrderDate), o nome do vendedor(FirstName), o valor dos produtos (unity price * quantity) , o valor do frete (freigth) e o valor total do pedido ( (unity price * quantity) - discount) - freigth
Não consigo fazer essa consulta, consegui fazer apenas o SQL abaixo:
SELECT
O.Orderid,
SUM((OD.UnitPrice * OD.Quantity)-OD.Discount) TOTAL, SUM(O.Freight) FRETE
FROM Orders O
INNER JOIN [Order Details] OD
ON O.Orderid = OD.Orderid
INNER JOIN Employees E
ON O.EmployeeID = E.EmployeeID
INNER JOIN Products P
ON P.ProductID = OD.ProductID
INNER JOIN Customers C
ON C.CustomerID = O.CustomerID
WHERE C.CustomerID LIKE '%A'
GROUP BY C.Orderidsábado, 11 de agosto de 2012 04:53
Todas as Respostas
-
Alguem tem alguma ideia de como resolver isso ?
Obrigado
sábado, 11 de agosto de 2012 16:51 -
Esta forma está correta para esse caso:
SELECT O.OrderID, CONVERT(VARCHAR(10),O.OrderDate,103), E.FirstName, O.CustomerID, CAST(OD.ValorProdutos AS VARCHAR(10)) AS 'Valor Produtos', CAST(OD.ValorTotal AS VARCHAR(10)) AS 'Valor Total' FROM ( SELECT OD.OrderID, ValorProdutos = SUM(OD.Quantity*OD.UnitPrice), ValorTotal = SUM((OD.Quantity*OD.UnitPrice)-Discount+O.Freight) FROM [Order Details] OD INNER JOIN Orders O ON OD.OrderID = O.OrderID GROUP BY OD.OrderID ) OD INNER JOIN Orders O ON O.OrderID = OD.OrderID INNER JOIN Employees E ON O.EmployeeID = E.EmployeeID INNER JOIN Customers C ON C.CustomerID = O.CustomerID WHERE C.CustomerID LIKE 'V%' ORDER BY O.OrderID
sábado, 11 de agosto de 2012 22:16 -
Você já conseguiu o que precisava?
Se não, em que ponto está?
Roberson Ferreira - Database Developer
Acesse: www.robersonferreira.com.br
Email: contato@robersonferreira.com.brSe esta sugestão for útil, por favor, classifique-a como útil.
Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.quarta-feira, 29 de agosto de 2012 16:39Moderador -
Consegui sim.
Trab. na Alterdata ?
Obrigado
quarta-feira, 29 de agosto de 2012 17:24