0

私はそれが私に与えている行の1つが必要ないことを除いて、すべてを正しく出力する次のクエリを持っています:

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
--WHERE r.Region_Desc <> "Unspecified"
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region
GROUP BY r.Region_Cd, r.Region_Desc;

r.Region_Desc が「Unspecified」のエントリを除外したいのですが、句をどこに置くべきかわかりません。トリックを行うと思った行をコメントアウトしましたが、エラーが発生しました。現在のクエリが意味をなさない理由についても説明をいただけますか?

4

3 に答える 3

1

結合後に where 条件を使用します。

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region
WHERE r.Region_Desc <> 'Unspecified'
GROUP BY r.Region_Cd, r.Region_Desc
于 2013-04-15T05:34:30.903 に答える
0

他のテーブルを結合しようとしている親テーブルの where 条件を書くことはできません。しかし、他の結合テーブルで条件を書くことができます。したがって、結合後に条件を使用してください。

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region
WHERE r.Region_Desc <> 'Unspecified'
GROUP BY r.Region_Cd, r.Region_Desc   
于 2013-04-15T05:37:50.990 に答える
0

パフォーマンスを考慮して、このようなものを使用する必要があります。

SELECT r.Region_Cd, r.Region_Desc, 
COUNT(a.Region) AS Count
FROM Region r
LEFT JOIN HU_UNIT_STATE_LEVEL a ON r.Region_Cd = a.Region and r.Region_Desc <> "Unspecified"
GROUP BY r.Region_Cd, r.Region_Desc;
于 2013-04-15T14:58:58.297 に答える