SQL组两次,不同的行

SQL组两次,不同的行,sql,azure-sql-database,Sql,Azure Sql Database,我正在使用SQLAzure。我试图将一组结果分组两次,以便用户名字段是唯一的。在我的结果中,相同的行以不同的事务计数值多次出现 这是我的密码: select settings.UserName, SUM(TransactionCount) as TransactionCount, settings.SettingValue as Sku, CASE WHEN settings.SettingValue = 'cccmicro' AND TransactionCount > 1800

我正在使用SQLAzure。我试图将一组结果分组两次,以便用户名字段是唯一的。在我的结果中,相同的行以不同的事务计数值多次出现

这是我的密码:

select settings.UserName, SUM(TransactionCount) as TransactionCount, settings.SettingValue as    Sku, CASE 
WHEN settings.SettingValue = 'cccmicro' AND TransactionCount > 1800 THEN 'True'
WHEN settings.SettingValue = 'cccsub1' AND TransactionCount > 6000 THEN 'True'
WHEN settings.SettingValue = 'cccsub2' AND TransactionCount > 18000 THEN 'True'
WHEN settings.SettingValue = 'cccsub3' AND TransactionCount > 30000 THEN 'True' 
ELSE 'False'
END As [Over]
from jma_qb_trans_count trans
Inner Join jma_settings settings on settings.UserName = trans.UserName
where settings.SettingName = 'QB:JMAWebStoreSku' and settings.SettingValue != ''
Group by settings.UserName, settings.SettingValue, settings.SettingName, TransactionCount
Order By settings.UserName
以下是我的数据:

以下是我所寻求的:

用户名:james.dick 交易数量:8 Sku:cloudcartconnectorlicense
Over:False

请尝试下面的代码。我想它会像你要求的那样工作

select 

settings.UserName, 
CASE 
WHEN settings.SettingValue = 'cccmicro' AND TransactionCount > 1800 THEN 'True'
WHEN settings.SettingValue = 'cccsub1' AND TransactionCount > 6000 THEN 'True'
WHEN settings.SettingValue = 'cccsub2' AND TransactionCount > 18000 THEN 'True'
WHEN settings.SettingValue = 'cccsub3' AND TransactionCount > 30000 THEN 'True' 
ELSE 'False'
END As [Over],
SUM(TransactionCount) as TransactionCount, 
settings.SettingValue as Sku

from jma_qb_trans_count trans
Inner Join jma_settings settings on settings.UserName = trans.UserName
where settings.SettingName = 'QB:JMAWebStoreSku' and settings.SettingValue != ''
Group by 1,2

您的分组正在拆分结果并将其放入“选择”部分,您将看到 为什么查询不能正常工作

Group by settings.UserName, settings.SettingValue, settings.SettingName, TransactionCount

谢谢,但我得到了Msg 164,级别15,状态1,第17行。每个GROUP BY表达式必须至少包含一列,而不是外部引用。我明白了。尝试将“分组依据1,2”更改为“分组依据1”