列を別のテーブルに移動する準備として、ゾーンデータを取得するためのクエリを作成しようとしています。私たちのDBがどのように設定されているかは、資産とケーブルがあることです。 1つの資産には多数のケーブルを割り当てることができますが、ケーブルには複数の資産を設定することはできません。現在、ゾーンテーブルをケーブルテーブル(たとえば、以下)から資産テーブルに移動しようとしています。CASEステートメントの問題を使用して集計データを選択する
A_ID C_ID Zone
--------------------------
1 1 Green
1 2 Green
1 3 Yellow
2 4 Green
2 5 Red
3 6 Yellow
3 7 Yellow
3 8 Yellow
3 9 Red
資産が異なるゾーンと複数のケーブルが含まれている場合、ゾーンの一つが黄色に黄色、それはデフォルト(例であれば、私はそれが資産テーブル用に設定したい方法が、ある。3本の、緑のケーブル、1黄色のケーブル - Asset_IDに黄色のゾーンがあります)。次にイエローがなくても赤が1つ以上ある場合は、デフォルトで赤になります(緑色のケーブル2本、赤色のケーブル3本 - Asset_IDに赤いゾーンがあります)。グリーンゾーンがある場合のみ、デフォルトでグリーンになります。
上記のサンプルテーブルを使用すると、私が期待する結果が得られます。
Expected Results
A_ID Zone
-------------
1 Yellow
2 Red
3 Yellow
私は、CASE文を使用しようとしているが、私は結果を正しくグループにクエリを策定する難しさを抱えています。
お手数をおかけしますようお願い申し上げます。よろしくお願いいたします。
ウィンドウ機能を備えたCTEをお試しください。 RowNumのようなもの(ケースゾーンによる資産の順序によるパーティション、黄色のときは1、赤のときは2、緑のときは3)。そして外側のクエリでは、各グループから一番上の行を選択します。 –