私の同僚によると、私たちはIBM DB2を使用していますSQL別個のIDごとに複数の代わりに1行を返すにはどうすればよいですか?
IDごとにSQLを1行戻すのに本当に苦労しています。仕事で周りに尋ねられたが、ここで女の子はSQLといいです...私はいくつかのSQLを行うことはできますが、SQLの専門家はいません。
良いことを説明するために、私はここで
下の例を設定するにはテーブルとそのデータ
ID DATE CODE PERCENT
01 2016-08-21 1111 52
01 2016-09-06 1111 60
01 2016-10-06 1112 38
02 2016-05-01 6666 50
02 2016-10-01 1111 50
である私は1つのレコードが最も早い日付で、各IDごとに返さたいです。 だから私はSQL
SELECT ID, MIN(DATE)
FROM TABLE
WHERE DATE >= '2016-01-01' AND DATE <= '2017-11-01'
AND CODE = 1111
GROUP BY ID
これはうまくいきました。私は得るだろう
01 2016-08-21
02 2016-10-01
私はすぐにもPERCENT列が必要であることを知った。
SELECT ID, MIN(DATE), PERCENT
FROM TABLE
WHERE DATE >= '2016-01-01' AND DATE <= '2017-11-01'
AND CODE = 1111
GROUP BY ID, PERCENT
が、今、私が間違っているID 01のための複数の行を取得しています...
は01 2016-08-21 1111 52
01 2016-09-06 1111 60
02 2016-10-01 1111 50
は、誰かが私はこのSQLを修正するか、右方向に私を指す助けることができるようにI以下のようにIDごとに1行を持つことができますか?
01 2016-08-21 1111 52
02 2016-10-01 1111 50
これはMS SQL Serverですか? – Sarhang
どのdbms ?????????? SQLはちょうどlanguです年齢。実装はdbmsごとに異なります。 – Eric
Alisonでは、使用するデータベースの種類(MySQL Oracle、Postgres、SQL Serverなど)を知ることは非常に重要です。なぜなら、ソリューションはデータベースがサポートしているものに依存するからです。 「SQL」はそれだけでは詳細が十分ではありません。 –