我想仅查找失败的用户详细信息,但以下查询提供了重复记录。我无法找到合适的解决方案。
要查找失败的工作详情,我正在使用以下查询:
select * from executionlog e
join catalog c on e.reportid = c.itemid
where c.name like '%reportname%'
and timestart>= '2013-04-15 09:00:00.000'
and status <> 'rsSuccess'
但是,上述查询为特定报告提供了重复值。
我如何获得独特的细节?
注意:我们无法应用distinct
或group by
,因为该表包含ntext
和image
数据类型的列
答案 0 :(得分:2)
如果您只想要“失败的用户详细信息”,则根本不要选择ntext
或image
列。这样你就可以正常做DISTINCT:
SELECT DISTINCT
--Parameters,
--Content,
--Property,
--Parameter,
InstanceName, ReportID, UserName, RequestType, Format, TimeStart, TimeEnd,
TimeDataRetrieval, TimeProcessing, TimeRendering, Source, Status, ByteCount,
[RowCount], ItemID, Path, Name, ParentID, Type, Intermediate, SnapshotDataID,
LinkSourceID, Description, Hidden, CreatedByID, CreationDate, ModifiedByID,
ModifiedDate, MimeType, SnapshotLimit, PolicyID, PolicyRoot, ExecutionFlag,
ExecutionTime
FROM executionlog e
JOIN catalog c ON e.reportid = c.itemid
WHERE c.name LIKE '%reportname%'
AND timestart>= '2013-04-15 09:00:00.000'
AND status <> 'rsSuccess'
您甚至可以修剪更多列。无论如何,请注意doing SELECT *
is a bad practice。
如果您对相应的ntext
和/或image
值感兴趣,可以随时再次加入catalog
上述子查询。