WITH A AS (
SELECT SYSDATE date_1,'1' data_1 ,1 item FROM DUAL
UNION
SELECT add_months(SYSDATE,7) date_1,'8'data, '1' item_ FROM DUAL
UNION
SELECT add_months(SYSDATE,6)+ 10, '4' data, '1' item FROM dual
UNION
SELECT add_months(SYSDATE,6) date_1,'3' data, '2' item FROM DUAL
)
SELECT min(date_1), data,item
FROM a
WHERE date_1 BETWEEN add_months(SYSDATE,6) AND last_day(add_months(SYSDATE,7))
GROUP BY item,data
結果は、アイテム1に2行あることを示していますが、最小日付のみが必要です。コードを変更して、最小(日付)に1つのアイテムの1つのデータを表示する方法. *そして、日付が正しいデータとアイテムと一致する必要があります *。読んでくれてありがとう。正しい答えを楽しみにしています。
私が言いたいことを呼び出すのに良くない方法を見つけました: アイテムごとにグループ化し、スコープ内の最小 date_1 を選択します
WITH A AS (
SELECT SYSDATE date_1, '1' data, '1' item FROM DUAL
UNION SELECT add_months(SYSDATE,7) date_1, '8' data, '1' item FROM DUAL
UNION SELECT add_months(SYSDATE,6)+ 10, '4' data, '1' item FROM dual
UNION SELECT add_months(SYSDATE,6) date_1, '3' data, '2' item FROM DUAL
)
select a.* from A a,(select min(date_1) date_1,item from A
where
date_1 BETWEEN add_months(SYSDATE, 6)
AND last_day(add_months(SYSDATE, 7))
group by item) b where a.date_1 = b.date_1 and a.item= b.item