0

私は 2 つのテーブルを持っています。結合すると 99 のレコードが返されます。

99 レコードを取得する代わりに、カウントだけが必要です。検索を行った後に試したクエリが 2 つありますが、どちらもまだ 99 レコードを返しています。だから私は何かが間違っています。

lotw テーブルには、国コード (フィールド: dxcc) ごとに 1 つの国の代表者の倍数のレコードが含まれる、または含まれる可能性があります。国テーブルは、国とそれに関連付けられた国コード (フィールド: コード) を保持します。

私が知りたいのは、バンド 20M に関連付けられている一意の郡の数です。ロトテーブルで。

最初に試した

SELECT COUNT(cc.code)
FROM lotw l
JOIN CountryCode AS cc on cc.code = l.dxcc 
WHERE l.DXCC > '' AND l.BAND IN ('20M')
GROUP BY l.DXCC

それから私は試しました

SELECT COUNT(cc.total)
FROM lotw l
JOIN (SELECT code,COUNT(Country) As total FROM CountryCode GROUP BY code) AS cc on cc.code = l.dxcc 
WHERE l.DXCC > '' AND l.BAND IN ('20M')
GROUP BY l.DXCC

後でさらにいくつかのテーブルに参加する必要があるため、それが機能する場合は2番目の方法を好みます

4

2 に答える 2

0

わかりましたクエリを逆にする必要があったので、これはうまくいきました。

SELECT COUNT(l.total)
FROM CountryCode cc
JOIN (SELECT dxcc, COUNT(*) As total FROM lotw  WHERE DXCC > '' AND BAND IN ('20M') GROUP BY dxcc) AS l on l.dxcc = cc.code 
于 2013-06-27T00:58:55.347 に答える