3

下の表から、Project.Date グループに Fail と Success がある場合、Fail の行を保持したいのですが、(残りのよ​​うに) 単一の行の場合は、Status に関係なくその行を保持します。たとえば、最初の行を保持し、2 番目の行を破棄して、残りを下の表に保持したいと思います。

╔═════════╦══════════╦═════════╗
║ PROJECT ║   DATE   ║ STATUS  ║
╠═════════╬══════════╬═════════╣
║ HLM     ║ 20130422 ║ Fail    ║
║ HLM     ║ 20130422 ║ Success ║
║ HLM     ║ 20130423 ║ Fail    ║
║ HLM     ║ 20130424 ║ Success ║
║ HLM     ║ 20130425 ║ Fail    ║
║ HLM     ║ 20130426 ║ Success ║
╚═════════╩══════════╩═════════╝
4

1 に答える 1

2
WITH records
AS
(
    SELECT  [Project], [Date], [Status],
            ROW_NUMBER() OVER (PARTITION BY [Project], [Date]
                                ORDER BY [Status]) rn
    FROM    TableName
)
SELECT  [Project], [Date], [Status]
FROM    records
WHERE   rn = 1

出力

╔═════════╦══════════╦═════════╗
║ PROJECT ║   DATE   ║ STATUS  ║
╠═════════╬══════════╬═════════╣
║ HLM     ║ 20130422 ║ Fail    ║
║ HLM     ║ 20130423 ║ Fail    ║
║ HLM     ║ 20130424 ║ Success ║
║ HLM     ║ 20130425 ║ Fail    ║
║ HLM     ║ 20130426 ║ Success ║
╚═════════╩══════════╩═════════╝
于 2013-04-28T16:34:50.930 に答える