0
ここではテーブルです: CUSTOMERCOUNT()は2つの個々の列数を掛け合わせていますが、どうすればこの問題が起こらないのですか?
custid(PK) custname custtype
001 john null
002 rob 1
CITY
cityid(PK) cityname
001 Baltimore
002 Knoxville
PACKAGE
packageid(PK) custid(PK,FK) cityid
001 001 001
001 002 001
002 001 002
は今私のクエリはこれです:
SELECT DISTINCT CITYNAME, CUSTTYPE, COUNT(P.PACKAGEID) AS PACKAGE_COUNT
FROM CITY S LEFT OUTER JOIN PACKAGE P
ON S.CITYID=P.CITYID,
CUSTOMER C INNER JOIN PACKAGE Q
ON C.CUSTID=Q.CUSTID
GROUP BY CITYNAME, CUSTTYPE;
結果:私が見たいのは何
CITYNAME CUSTTYPE PACKAGE_COUNT
BALTIMORE NULL 4
KNOXVILLE NULL 2
BALTIMORE 1 2
KNOXVILLE 1 0
がある:私はので、すなわちボルティモア= 2とヌル= 2 2をカウントcityname数がcusttypeが掛けられている伝えることができるものから、
CITYNAME CUSTTYPE PACKAGE_COUNT
BALTIMORE NULL 1
KNOXVILLE NULL 1
BALTIMORE 1 1
KNOXVILLE 1 0
* 2 = 4.パッケージテーブルでは、baltimoreはnull custtypeから1つのパッケージのみを受け取ります。すべてのヘルプは
だけでグループなしに、クエリの最初の部分を実行し、それが生み出すものを参照してください。 CITY S LEFT OUTER FROM SELECT CITYNAME、CUSTTYPE、P.PACKAGEID はS.CITYID = P.CITYIDたパッケージP のJOIN、 CUSTOMER C INNER = Q.CUSTID – Amit
私はあなたが何を意味するかを理解するC.CUSTID ON PACKAGE Q を登録しようクエリの最初の部分を実行したときに重複レコードを照会しますが、CITYNAMEにDISTINCT句を追加すると、それは修正されますが、集計関数がクエリに再組み込みされても問題は解決しませんが、ありがとうございます。 –