1

クエリを作成する必要がある2つのテーブルがあります。私も参加する必要があると確信しています。

テーブルからandofcustomerを取得する必要がありCustomerNameますがAddress、顧客からCustomerのすべての注文の合計金額を表示するクエリも必要です。したがって、顧客が今年合計でたとえば300ドルを費やした場合、その300ドルが私が達成しようとしている成果です。

に関連付けられたOrder Detailsを使用するというテーブルがあり、テーブルには列があります。私はこれらを乗算する方法を理解しようとしていますが、私は夢中になっています。OrderIDCustomerIDunitpricequantityOrder 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 

ありがとう

4

2 に答える 2

0

1対多の関係の場合、クエリは次のようになります。

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
于 2013-01-11T02:40:27.907 に答える
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

さらに、私はいくつかの文体の変更を行いました。テーブル名にエイリアスを追加しました。c.CompanyNameよりも読みやすいと思いますCustomers.CompanyName。列エイリアスの区切り文字を、一重引用符ではなく二重引用符を使用するように変更しました。ステートメント内で一重引用符を文字列定数に関連付けます。

于 2013-01-11T02:40:30.170 に答える