急急急,来大佬啊 [Err] 42000 - [SQL Server]不能对包含聚合或子查询的表达式执行聚合函数。

   select
        case when 
        max(right(card.card_barcode,
                        (select role_length from sys_barcode_role
                        join sys_role_type on fk_type_uuid = type_uuid
                        where type_code = 'ASSET_SERAI' and role_company = org_company)
                ))
       is null
      then 0
      else (
        max(right(card.card_barcode,
                        (select role_length from sys_barcode_role
                        join sys_role_type on fk_type_uuid = type_uuid
                        where type_code = 'ASSET_SERAI' and role_company = org_company)))
      ) end assetSerailizNumber, org_company as company_uuid
    from view_organization_employee charge
        left join asset_card card on card.card_charge_employee = employee_uuid and card.delete_status = 0 and card_source != 2
    group by charge.org_company

你写法错了,你用exists来判断,不能用is null来判断,而且要把这个判断顺序改一下,要不然就把max(right放case前面去,要不然就是把exist放max前面来