【发布时间】:2012-10-02 10:14:27
【问题描述】:
我有这个查询可以正常工作。但是,我遇到了在 [id2] 列下返回相同 int 值的查询的问题。我需要帮助来获取值的一个实例而忽略另一个。基本上抓住一个独特的[id2]。任何帮助将不胜感激。另外,如果您需要澄清,请告诉我。
SELECT [id],[id1]
,[id2]
,[name]
,[date]
,[user]
FROM [MyDatabase.table]
Where [date]>= dateadd(day,datediff(day,0,getdate()),-5)
ORDER BY [cid]
编辑 1:
id1 id2 name time user
6466 171477 item1 2012-10-10 07:08:48.000 user1
6469 171477 item1 2012-10-10 07:11:01.000 user1
6468 171477 item1 2012-10-10 07:10:37.000 user1
6465 171477 item1 2012-10-10 07:07:43.000 user1
6464 171477 item1 2012-10-10 07:06:58.000 user1
6467 171477 item1 2012-10-10 07:09:35.000 user1
6474 173026 item2 2012-10-10 10:20:21.000 user2
6478 173297 item3 2012-10-10 11:31:55.000 user3
6472 175445 item4 2012-10-10 07:18:17.000 user1
6460 175977 item5 2012-10-08 07:42:39.000 user4
6473 176253 item6 2012-10-10 10:18:21.000 user2
6471 176253 item6 2012-10-10 10:15:03.000 user2
6470 176253 item6 2012-10-10 10:14:34.000 user2
应该是:
id1 id2 name time user
6466 171477 item1 2012-10-10 07:08:48.000 user1
6474 173026 item2 2012-10-10 10:20:21.000 user2
6478 173297 item3 2012-10-10 11:31:55.000 user3
6472 175445 item4 2012-10-10 07:18:17.000 user1
6460 175977 item5 2012-10-08 07:42:39.000 user4
6473 176253 item6 2012-10-10 10:18:21.000 user2
【问题讨论】:
-
如果您在该列中有重复项,那么其他列呢?请发布您的表格示例,以及输出应该是什么样子的示例
-
什么逻辑决定忽略哪些时间以及包含哪些时间?您的示例使您的 time 和 id1 字段看起来是完全任意的。以 id2 171477 为例。您选择的时间不是 id2 的最早或最晚。您选择的 id1 既不是 id2 的最低值也不是最高值。
-
好的,我只想让 id2 列只显示一个 171477 的实例。时间和 id1 对输出真的没有限制。
-
那为什么不直接
select distinct id2, name, user from .....呢?
标签: sql sql-server tsql sql-server-2012 distinct-values