日期:2014-05-18  浏览次数:20374 次

以两字段为基准查询不重复记录,怎么写SQL语句?
现有一部门计划表,大致结构如下
表名:T_WorkLogsData
主要列:ID_u   (Guid型)
ApplyDate_dt(时间类型)
WorkLogData_ch(varchar型)
UserID_i(BigInt型)
假如,同一部门的几个人都要在某天参加一项会议,则此表中会有每个人的一条记录,ApplyDate_dt同一天,WorkLogData_ch也为同一件事(例如存 "开会 "这两个字),此时我要以ApplyDate_dt和WorkLogData_ch为条件查出不重复的记录,即得到的结果中
ID_u,UserID_i是谁的都不要紧,但ApplyDate_dt和WorkLogData_ch不能同时重复,如果同时重复就将其做为一条结果显示
SELECT   DISTINCT   ApplyDate_dt,   WorkLogData_ch   FROM   T_WorkLogsData虽然能例举出这唯一的记录,但不能包含其他字段(即我要表中的所有字段)
请问我应该怎么写这条SQL语句


------解决方案--------------------
Select
A.*
From
T_WorkLogsData A
Inner Join
(Select ApplyDate_dt, WorkLogData_ch, Min(UserID_i) As UserID_i From T_WorkLogsData Group By ApplyDate_dt, WorkLogData_ch) B
On A.ApplyDate_dt = B.ApplyDate_dt And A.WorkLogData_ch = B.WorkLogData_ch And A.UserID_i = B.UserID_i