私は以下のテーブルデータを持っています。このシナリオでは、従業員は1または0、または(1,0)のいずれかを有することができるが、決して従業員は、複数の1と複数の0SQL上の部分テーブルデータのグループ化
員ステータス
<table>
\t <tr>
\t \t <th> Employee</th>
\t \t <th> Status </th>
<tr>
<tr>
\t \t <td>abc </td>
\t \t <td> 1</td>
</tr>
<tr>
\t \t <td>abc </td>
\t \t <td> 1</td>
</tr>
<tr>
\t \t <td>PQR </td>
\t \t <td> 1</td>
</tr>
<tr>
\t \t <td>XYZ </td>
\t \t <td> 0</td>
</tr>
</table>
以下は出力から期待されるものです。意味
<table>
\t <tr>
\t \t <th> Employee</th>
\t \t <th> Status </th>
<tr>
<tr>
\t \t <td>abc </td>
\t \t <td> $</td>
</tr>
<tr>
\t \t <td>PQR </td>
\t \t <td> yes</td>
</tr>
<tr>
\t \t <td>XYZ </td>
\t \t <td> no</td>
</tr>
</table>
、重複したレコードがある場合、1は[はい0ならば、第
この
に助けるため、事前にいただきありがとうございます場合は、ステータスは、$べきです私がしようとしているもの:
;with CTEE (RowNumber, EmployeeName, [Status]) As
(select a.RowNumber,
a.EmployeeName,
case when a.rowNumber > 1 then ''
when a.rowNumber = 1 and Working = 0 then 'N'
else 'Y' end as [Status]
from (select Row_Number() over(Partition by EmployeeName order by EmployeeName) as [RowNumber],
EmployeeName,
[Status]
from [Table]
group by EmployeeName, [Status]) a)
select EmployeeName, [Status]
from CTEE c1
where (RowNumber = 1
and EmployeeName not in
(select EmployeeName
from CTEE where EmployeeName = c1.EmployeeName and [Status] = '')) or RowNumber =2
「; CTEE(RowNumber関数、EmployeeName、[状態]) として で(a.RowNumberを選択し、 a.EmployeeName、ケース場合a.rowNumber> 1、次いで '*' \t \t \t \t場合a.rowNumber = 1と作業= 0次いで、 'N' 他 \t \t \t から[状態] として 'Y' 末端( )Row_Number()を超える(EmployeeName順のEmployeeName順のパーティション) 【RowNumber関数】として、EmployeeName、EmployeeNameによって[表] 基、[状態] ) )から[状態] はEmployeeNameを選択 、[状態] でないCTEE C1を (RowNumber関数= 1とEmployeeNameから(CTEEからEmployeeNameを選択してください。EmployeeName = c1.EmployeeNameと[Status] = '*'))またはRowNumber = 2 ' –
**質問にクエリを追加してください。 –