質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Q&A

解決済

1回答

1634閲覧

SQL:複数行にまたがる条件によって取得する結果を変化させたい

kukku-zelda

総合スコア22

Oracle

Oracleは、米オラクルが取り扱うリレーショナルデータベース管理システムです。メインフレームからPCまで、多様なプラットフォームに対応しています。

Oracle Database 11g

Oracle DatabaseはRDBMSの商品です。具体的な発売商品として知られているのが、 Oracle9i、Oracle10g、Oracle 11gとOracle 12cです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

0グッド

0クリップ

投稿2019/02/05 06:31

【途中の集計結果】
出荷表

受注番号明細番号枝番出荷完了日付
A112019/1/10
A12null
B112019/1/1
B122019/2/10
C11null
C212019/2/10

上記を以下の条件でまとめたいです。
1.受注番号・明細番号単位で表示させる。
2.出荷完了日付が上記単位で全部埋まっていない場合は表示しない(nullにする。)
3.出荷完了日付が上記単位で全部埋まっている(出荷完了している)場合、最遅のものを表示する。

【最終的に欲しい結果】

受注番号明細番号出荷完了日付
A1null
B12019/2/10
C1null
C22019/2/10

複数行にわたって条件を見なければならないので、集計関数を用いたりするのだと思うのですが、なかなかうまく行きません・・・。
知恵をお貸しください。よろしくお願いします。

ちなみに・・・
受注番号・明細番号単位で、出荷完了していないものについては、以下のSQLで抽出できそうです。
SELECT DISTINCT 受注番号, 明細番号, 出荷完了日付
FROM 出荷表
WHERE 出荷完了日付 IS NULL;

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

keep構文を用いてNUllを最大値として指定します。

SQL

1select 受注番号, 明細番号 2 , max(出荷完了日付) keep (dense_rank last order by 出荷完了日付 nulls last) 3from 出荷表 4group by 受注番号, 明細番号

ソートしたレコードの最終行に集計関数を使用する( KEEP、LAST )
カラムにnullが含まれるなら結果がnullになるmax()

投稿2019/02/05 06:44

編集2019/02/05 06:49
sazi

総合スコア25173

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kukku-zelda

2019/02/05 06:56

すごい! こんなに早く、しかも目的の操作ができました! しかもコラムまでつけていただいて・・・ ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問