0

私はそれを行う方法を知りたい!!!.

現在: ペットを提供しているグループごとに分けられた売り手がいます。

ペットは、PetTable (PETCode および PETName)という名前のテーブルにあります。

CREATE TABLE PetTable ( 
PETCode VARCHAR(16) UNIQUE NOT NULL, 
PETName VARCHAR(32) NOT NULL 
);
INSERT INTO PetTable (PETCode, PETName) VALUES 
('Pet1','Black Cat'), 
('Pet2','Big Dog'), 
('Pet3','Gold Fish'), 
('Pet4','Parlot'), 
('Pet5','Bird'), 
('Pet6','Small Dog'); 

売り手は、SellerTable (CodeSeller および NameSeller)に格納されます。

CREATE TABLE SellerTable  ( 
CodeSeller VARCHAR(16) UNIQUE NOT NULL, 
NameSeller VARCHAR(32) NOT NULL 
); 
INSERT INTO SellerTable  (CodeSeller, NameSeller) VALUES 
('Seller0','John '), 
('Seller1','Paul '), 
('Seller2','David '),   
('Seller3','James ');

売り手は、 3 つのフィールド (PETCode、CodeSeller、Quantity) を持つSalesTableを使用してペットと関連付けられます。

CREATE TABLE SalesTable ( 
PETCode VARCHAR(16) NOT NULL, 
CodeSeller VARCHAR(16) NOT NULL, 
Quantity INT NOT NULL 
);
INSERT INTO SalesTable (PETCode, CodeSeller, Quantity) VALUES 
('Pet1', 'Seller0', '9'), 
('Pet2', 'Seller0', '81'), 
('Pet3', 'Seller0', '7'), 
('Pet4', 'Seller1', '63'), 
('Pet5', 'Seller1', '4'), 
('Pet6', 'Seller1', '50'), 
('Pet2', 'Seller2', '61'), 
('Pet5', 'Seller2', '72'), 
('Pet4', 'Seller3', '83'), 
('Pet2', 'Seller3', '94'), 
('Pet1', 'Seller3', '8'); 

私のクエリは非常に単純です。PET あたりの販売額を知る方法です! PET1、PET2、PET3 のすべての売上の合計はいくらですか...さらに続けます...

貴重なご支援ありがとうございます...

アン

4

2 に答える 2

0

、 with PetTable、と結合する必要があります。それらが共通している列は同じ名前であるため、次を使用できます。SalesTablePetTable.PetCode = SalesTable.PetCodeNATURAL JOIN

SELECT PETName, SUM(Quantity)
FROM PetTable NATURAL JOIN SalesTable
GROUP BY PETName

ここでフィドルを参照してください。

または、 で合計する必要がありPETCode、ペットの名前に興味がない場合は、結合なしでこれを使用できます。

SELECT PETCode, SUM(Quantity)
FROM SalesTable
GROUP BY PETCode
于 2013-04-17T15:57:09.133 に答える
0

最初にテーブルを結合する必要があります。には興味がないので、テーブルを使用してテーブルをSellerName結合するだけで十分です。PetTableSalesTableLEFT JOIN

クエリでLEFT JOINoverを使用する理由は、まだ販売されていないものが含まれるためです。INNER JOINPets

SELECT  a.PETCode,
        a.PETName,
        SUM(b.Quantity) TotalSold
FROM    PetTable a
        LEFT JOIN SalesTable b
            ON a.PETCode = b.PETCode
GROUP   BY  a.PETCode, a.PETName

結合についてさらに詳しく知りたい場合は、以下のリンクにアクセスしてください。

出力

╔═════════╦═══════════╦═══════════╗
║ PETCODE ║  PETNAME  ║ TOTALSOLD ║
╠═════════╬═══════════╬═══════════╣
║ Pet1    ║ Black Cat ║        17 ║
║ Pet2    ║ Big Dog   ║       236 ║
║ Pet3    ║ Gold Fish ║         7 ║
║ Pet4    ║ Parlot    ║       146 ║
║ Pet5    ║ Bird      ║        76 ║
║ Pet6    ║ Small Dog ║        50 ║
╚═════════╩═══════════╩═══════════╝
于 2013-04-17T15:57:51.167 に答える