2013-01-11 2 views
1

쿼리를 작성하는 데 필요한 두 개의 테이블이 있습니다. 나는 그들과 함께 할 필요가있을 것이라고 확신한다.고객 ID 당 총 달러 금액에 대한 SQL Server 쿼리

고객의 CustomerNameAddressCustomer 테이블에서 가져와야하지만 고객이 지정한 모든 주문의 총 금액을 표시하는 쿼리가 필요합니다. 예를 들어 고객이 올해 총 300 달러를 소비했다면 300 달러를 달성하려고했습니다.

은 내가 CustomerID에 연결하고 Order Details 테이블에 unitpricequantity 열이 존재하는 OrderID를 사용 Order Details라는 테이블이 있습니다. 나는 이들을 여러 개 만드는 법을 알아 내려고 노력하고 있지만 나는 미쳐 가고있다.

나는 주문에서 적어도 총을 얻기 위해이를 시도했지만 나는 구문 확실히 오류가 : 운이없이 또한

SELECT unitprice, 
     quantity 
FROM [Order details] (unitprice * quantity) AS Totalorders, 
     from [Order Details] 
WHERE orderid > 0 

이 :

SELECT customers.companyname        AS 'Company Name', 
     customers.address         AS 'Address', 
     [order details].unitprice * [order details].quantity AS 'Orders' 
FROM customers 
     LEFT JOIN orders 
       ON customers.customerid = orders.customerid 
ORDER BY customers.companyname, 
      customers.address, 
      orders 

감사

+0

코드를 붙여 넣을 때 부지런히하십시오. 내가 당신을 위해 몇 가지 구문 오류를 해결했습니다. – Kermit

+1

두 테이블 또는 세 (고객, 주문, 주문 세부 정보)가 있습니까? –

+1

예 실제로 4 개의 테이블이 있습니다. 고객, 주문 세부 정보, 주문 및 제품. – user1968657

답변

0

당신은 주문 세부 사항을 가입하고 집계하여 그룹을 수행해야합니다

SELECT c.CompanyName AS "Company Name", 
     c.Address AS "Address", 
     sum(od.Unitprice * od.quantity) as "Orders" 
FROM Customers c LEFT JOIN 
    Orders o 
    ON c.CustomerID = o.CustomerID left join 
    [Order Details] od 
    on od.orderid = o.orderid 
GROUP BY c.CompanyName, c.Address 
ORDER BY c.CompanyName, c.Address 

은 또한, 나는 몇 가지 문체 변경했습니다. 테이블 이름에 별칭을 추가했습니다. Customers.CompanyName 대신에 c.CompanyName을 읽기가 훨씬 쉽습니다. 작은 따옴표보다는 큰 따옴표를 사용하도록 열 별칭에 대한 구분 기호를 변경했습니다. 저는 작은 따옴표를 문 내부의 문자열 상수와 연관시킵니다.

+0

실제로 데이터 형식을 변경해야만하는 이유는 그것이 다중 오류를 주었지만 이것이 효과가있었습니다 !! 대단히 감사합니다!!!! – user1968657

0

을 일대 다 관계라면 쿼리는 다음과 같이 보일 것입니다 :

SELECT 
Customers.CompanyName AS 'Company Name', 
Customers.Address AS 'Address', 
SUM(O.Unitprice * O.quantity) as 'Orders' 
FROM Customers 
LEFT JOIN [Order Details] O 
ON Customers.CustomerID = O.CustomerID 
GROUP BY Customers.CompanyName, Customers.Address 
ORDER BY Customers.CompanyName, Customers.Address 
,
+0

이것은 필요한 항목에 매우 가깝지만 Order Details 테이블에는 CustomerID가 없습니다. 내 주문 테이블에 CustomerID가 있습니다. Orders 테이블과 Order Details 테이블에 모두 OrderID가 있습니다. – user1968657

+0

설명해 주셔서 감사합니다. – cha