0

5つのフィールドを持つテーブルがあります。2 つのフィールドには、一致する重複値があります。必要なデータ結果を得るには、1 つまたは 2 つの JOINS を使用する必要があると思います。

田畑:Machine, Message, Date, Severity, ID

重複する 2 つのフィールドは、Machine と Message です。

サンプルデータ:

MACHINE  |  MESSAGE
--------------------
MACHINE1 |  ERROR1
MACHINE2 |  ERROR1
MACHINE3 |  ERROR1
MACHINE2 |  ERROR2
MACHINE2 |  ERROR2
MACHINE3 |  ERROR3
MACHINE1 |  ERROR3
MACHINE1 |  ERROR1

結果が次のようになる必要があります。

MACHINE1, 2 - ERROR1, 1 - ERROR3

MACHINE2, 1 - ERROR1, 2 - ERROR2

MACHINE3, 1 - ERROR1, 1 - ERROR3

これに対する答えを探してみましたが、答えが見つかりませんでした。私は可能性のある JOIN または 2 つが必要になると思いますGROUP BY

4

2 に答える 2

1
create table #machineErrors (Machine nvarchar(20), Error nvarchar(20))

insert into #machineErrors values ('Machine1','Error1')
insert into #machineErrors values ('Machine2','Error1')
insert into #machineErrors values ('Machine3','Error1')
insert into #machineErrors values ('Machine2','Error2')
insert into #machineErrors values ('Machine2','Error2')
insert into #machineErrors values ('Machine3','Error3')
insert into #machineErrors values ('Machine1','Error3')
insert into #machineErrors values ('Machine1','Error1')

select  Machine, COUNT(*), [Error]
from    #machineErrors
group by Machine, [Error]
order by Machine, [Error]
于 2012-04-19T20:27:22.713 に答える
0

私は完全な質問を理解していませんが、マシンでのさまざまなエラー (1,2,3) に基づいて結果を集計するために、SQL のピボット機能を見ているようです。

MSSQL と仮定しますか?? したがって、クエリは、集計したいエラーが 3 つあるという前提に基づいています。

SELECT Machine, [Error1], [Error2], [Error3]
FROM
    MessageTable
Pivot
(
  COUNT(Machine)
  FOR ErrorColumn 
  IN ([Error1], [Error2], [Error3])
)
于 2012-04-19T20:27:44.403 に答える