0

SQL Server 2005 を使用しており、次のものを保持するテーブルがあります...

[uniqueID] [requirementId] [number] [description] [dtmexecuted] [amount]

同じrequirementidとdtmexecutedを持つすべての行を見つける必要があります。私は試した

select 
    requirementid, dtmexecuted, count(*) 
from 
    [MyTable]
group by 
    requirementid, dtmexecuted
having 
    count(*) > 1
order by 
    requirementid

しかし、それでは必要な結果が得られませんでした。これが私が必要とするものの例です。

[FEE55DE4-F7AD-438F-83F5-0002C7DAF993] [3719D29C-8532-4128-BECA-F720106AE61B] [03] [desc] [2011-04-01 00:00:00.000] [900.00]

[BRW46DE4-F1GC-125C-51RC-3985G7CFF873] [3719D29C-8532-4128-BECA-F720106AE61B] [04] [desc 2] [2011-04-01 00:00:00.000] [1900.00]

これらの 2 つの行を、requirementid と dtmexecuted が同じものとして返すものを作成する必要があります。

4

2 に答える 2

0

これは、私がこの問題に取り組む通常の方法です。

select
  dest.*
from
  (
  select 
    requirementid,
    dtmexecuted,
    count(*) as RowCount
  from [MyTable]
  group by requirementid, dtmexecuted
  having count(*) > 1
  ) sub
  join [MyTable] dest 
    on dest.requirementid = sub.requirementid
    and dest.dtmexecuted = sub.dtmexecuted
order by requirementid, dtmexecuted

CTEまたはテーブル変数を使用してそれを行うこともできます...

于 2013-06-27T14:20:35.130 に答える