我正在嘗試將第三列包含到我現有的 SQL Server 查詢中,但我得到了重復的結果值。
以下是 中包含的資料的示例tb_IssuedPermits
:
| EmployeeName | Current |
|--------------|---------|
| Person A | 0 |
| Person A | 0 |
| Person B | 1 |
| Person C | 0 |
| Person B | 0 |
| Person A | 1 |
這是我當前的查詢,它根據 1 位或 0 位值生成重復值。
SELECT EmployeeName, COUNT(*) AS Count, [Current]
FROM tb_IssuedPermits
GROUP BY EmployeeName, [Current]
| EmployeeName | Count | Current |
|--------------|-------|---------|
| Person A | 2 | 0 |
| Person B | 1 | 0 |
| Person C | 1 | 0 |
| Person A | 1 | 1 |
| Person B | 1 | 1 |
關于如何修改查詢以獲得以下預期結果的任何想法?我想要每個結果行EmployeeName
。AndCurrent
應為 1,如果EmployeeName
存在一行,則為Current = 1
0。
| EmployeeName | Count | Current |
|--------------|-------|---------|
| Person A | 3 | 1 |
| Person B | 2 | 1 |
| Person C | 1 | 0 |
結果不需要按任何特定順序排列。
TIA
uj5u.com熱心網友回復:
如果您的Current
列包含字串值'FALSE'
并且'TRUE'
您可以執行此操作
SELECT EmployeeName, Count(*) AS Count,
MAX([Current]) AS Current
FROM tb_IssuedPermits
GROUP BY EmployeeName
這是一個 hack,但它有效:如果有一個組,MAX 將從每個組中獲得 TRUE。
如果您的Current
專欄是 BIT,請按照 @TorstenKettner 的建議執行此操作。
SELECT EmployeeName, Count(*) AS Count,
MAX(CAST([Current] AS INT)) AS Current
FROM tb_IssuedPermits
GROUP BY EmployeeName
uj5u.com熱心網友回復:
你可以這樣做
SELECT EmployeeName, Count(1) AS Count,SUM(CAST([Current]AS INT)) AS Current FROM tb_IssuedPermits GROUP BY EmployeeName
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/468905.html