根据我的同事,我们正在使用IBM DB2SQL如何让sql返回一行而不是每个不同ID的多个?
真的很难试图让我的sql每个ID返回一行。在工作中被问到,但没有女孩在这里与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
我想每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或我指向正确的方向,让我每个ID可以有一行如下?
01 2016-08-21 1111 52
02 2016-10-01 1111 50
这是在MS SQL Server中吗? – Sarhang
哪个dbms ??????????? SQL只是一个语言年龄。实现不同于一个dbms到另一个。 – Eric
Alison,知道您使用的数据库类型(例如MySQL Oracle,Postgres,SQL Server ...)非常重要,因为解决方案将取决于数据库支持的内容。 “SQL”本身不够详细。 –