SQLで前の行と同じ値は表示しないようにするして伝票印刷のような処理に対応します。
前の行と同じ値は表示しない
SQLで前の行と同じ値は表示しないようにするして伝票印刷のような処理に対応します。
1.テーブルの準備
データを保存するためにテーブルを準備します。
create table テーブル1
(
keys varchar(20)
,no01 varchar(20)
,name varchar(20)
)
2.データの挿入
検索対象のデータを挿入します。
insert into テーブル1 values ( '1', '1', 'lightgauge_01' ) insert into テーブル1 values ( '2', '2', 'lightgauge_02' ) insert into テーブル1 values ( '3', '2', 'lightgauge_03' ) insert into テーブル1 values ( '4', '2', 'lightgauge_04' ) insert into テーブル1 values ( '5', '3', 'lightgauge_05' ) insert into テーブル1 values ( '6', '3', 'lightgauge_06' )
3.問い合わせ
実際に問い合わせを行ってみます。
SELECT
keys
,no01
,name
FROM (
SELECT DISTINCT
keys
,no01
,name
FROM
テーブル1
WHERE
name Not In (
SELECT DISTINCT
A.name
FROM
テーブル1 AS A
INNER JOIN テーブル1 AS B ON
A.no01 = B.no01 AND A.keys>B.keys
)
UNION ALL
SELECT DISTINCT
keys
,'' AS no01
,name
FROM
テーブル1
WHERE
name In (
SELECT DISTINCT
A.name
FROM
テーブル1 AS A
INNER JOIN テーブル1 AS B ON
A.no01 = B.no01 AND A.keys>B.keys)
) AS dsp_table ORDER BY keys
4.作成したテーブルを削除
作成したテーブルを削除します。
DROP TABLE テーブル1
5.実行結果
実行結果です。
keys no01 name 1 1 lightgauge_01 2 2 lightgauge_02 3 lightgauge_03 4 lightgauge_04 5 3 lightgauge_05 6 lightgauge_06
no01の値が1行前と同じ値の場合は表示されていません。

