目的Aの最小価格と目的Bの最大価格が必要です。さらに、アイテムをゾーンごとにグループ化します。
SELECT ZONE, MIN_PRICE, MAX_PRICE --,LEFT_ZONE
FROM
(SELECT MIN(PRICE) AS MIN_PRICE , ZONE AS LEFT_ZONE
FROM MYTABLE
WHERE PURPOSE = 'A'
AND SOMETHING = 'SOMEVALUE'
GROUP BY ZONE
)
FULL OUTER JOIN
(SELECT MAX(PRICE) AS MAX_PRICE, ZONE_CD
FROM MYTABLE
WHERE PURPOSE = 'B'
AND SOMETHING = 'SOMEVALUE'
GROUP BY ZONE
)
ON LEFT_ZONE = ZONE
このクエリは私が望む出力を提供しますが、2つの理由でそれが好きではありません:
1)欲しい
FROM MYTABLE
WHERE SOMETHING = 'SOMEVALUE'
一度だけ呼び出されます。
2)行が完全外部結合の右側のテーブルからのものである場合、ZONEnullを取得します。
どうすればこれらの問題を解決できますか。
クエリに他に問題がありますか?