我有以下查询:
SELECT
DISTINCT (TK.TICKETID),
TK.DESCRIPTION,
TK.CREATIONDATE,
TK.REPORTEDBY,
TK.OWNER,
WF.ASSIGNCODE
FROM ticket TK
INNER JOIN wfassignment WF on WF.OWNERID = TK.TICKETUID
WHERE TK.status not in ('ЧЕРНОВИК', 'ЗАКРЫТ', 'ВЫПОЛНЕН') AND WF.ASSIGNSTATUS not in ('COMPLETE', 'INACTIVE')
ORDER BY TK.TICKETID;
但它在 TK.TICKETID 属性中返回重复项。如果我删除其他属性一切都可以。
例如
TK.TICKETID TK.DESCRIPTION TK.CREATIONDATE TK.REPORTEDBY TK.OWNER WF.ASSIGNCODE
О1013249 Право доступа 02.06.14 CHERNOVDK SKACHKOVSV NOVIKOVVA
О1013249 Право доступа 02.06.14 CHERNOVDK SKACHKOVSV PRITULADV
О1013249 Право доступа 02.06.14 CHERNOVDK SKACHKOVSV SVESHNIKOVAV
我怎样才能每次只返回一条记录TK.TICKETID
?
选择查询中有多个列,因此查询将检查所有列的唯一性,而不仅仅是括号中的列。
SQL DISTINCT 关键字与 SELECT 语句结合使用以消除所有重复记录并且只获取唯一的records. 请注意,这不仅仅是列,但是entire记录(整行)。
如果您将查询修改为:
SELECT
DISTINCT (TK.TICKETID),
TK.DESCRIPTION,
TK.CREATIONDATE,
TK.REPORTEDBY,
TK.OWNER
FROM ticket TK
INNER JOIN wfassignment WF on WF.OWNERID = TK.TICKETUID
WHERE TK.status not in ('ЧЕРНОВИК', 'ЗАКРЫТ', 'ВЫПОЛНЕН') AND WF.ASSIGNSTATUS not in ('COMPLETE', 'INACTIVE')
ORDER BY TK.TICKETID;
您只会得到一个结果。
在输出中,请注意以下内容,带星号的都是不同的。
TK.TICKETID TK.DESCRIPTION TK.CREATIONDATE TK.REPORTEDBY TK.OWNER **WF.ASSIGNCODE**
О1013249 Право доступа 02.06.14 CHERNOVDK SKACHKOVSV **NOVIKOVVA**
О1013249 Право доступа 02.06.14 CHERNOVDK SKACHKOVSV **PRITULADV**
О1013249 Право доступа 02.06.14 CHERNOVDK SKACHKOVSV **SVESHNIKOVAV**
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)