これは説明がやや難しいです...(これはTeradataにSQL Assistantを使用しています。 。SQL:最大値をとりますが、特定のIDのフィールドが見つからない場合は、すべての値を無視してください。
ID creation_date completion_date Difference
123 5/9/2016 5/16/2016 7
123 5/14/2016 5/16/2016 2
456 4/26/2016 4/30/2016 4
456 (null) 4/30/2016 (null)
789 3/25/2016 3/31/2016 6
789 3/1/2016 3/31/2016 30
IDには複数のcreation_dateが含まれることがありますが、常に同じcompletion_dateを持ちます。 IDのすべてのレコードに対してcreation_dateが設定されている場合は、最新のcreation_dateのレコードを返したいと思います。ただし、指定されたIDのANY creation_dateがない場合、このIDに関連付けられたすべてのレコードを無視します。
上記のデータを考えると、私は返すようにしたいでしょう:第二のレコードが不足しているCREATION_DATEを持っているので
ID creation_date completion_date Difference
123 5/14/2016 5/16/2016 2
789 3/25/2016 3/31/2016 6
ませレコードが456のために返されません。最新のcreation_dateのレコードが123と789に返されます。
ご協力いただければ幸いです。ありがとう!
あなたの質問を編集して、データベースにタグを付けてください... – sgeddes
'HAVING COUNT(CREATION_DATE):ここで
は
conditional aggregation
を使用して、より一般的なバージョンです。 COUNT(*) ' –「差分」を保存する必要がありますか? Teradataでは、 "date1" - "date2"のように日付の差を計算することができると信じています。 – pilcrow