【问题标题】:A beginner Using count and getting errors初学者使用计数并得到错误
【发布时间】:2021-07-22 14:37:36
【问题描述】:

我对 SQL 很陌生..我有两个表..联系人和地址..试图查看联系人在哪里有多个标记为家的地址。

我想显示两个表中的信息,其中 ra.cv__Contact__c(地址)对于多条记录是相同的,并且记录说地址类型是 home。当我删除我的计数功能行时,我确实看到所有地址标记为家的记录,但是当我输入时

FROM dbo.cv__Related_Address_Detail__c ra LEFT JOIN dbo.Contact c on c.Id=ra.cv__Contact__c
WHERE ra.cv__Contact__c=ra.cv__Contact__c AND ra.cv__Address_Type__c='home' 
HAVING COUNT (ra.cv__Contact__c)>1
ORDER BY ra.cv__Contact__c;``

我收到此错误

列 'dbo.cv__Related_Address_Detail__c.cv__Contact__c' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。

当我添加分组时

FROM dbo.cv__Related_Address_Detail__c ra LEFT JOIN dbo.Contact c on c.Id=ra.cv__Contact__c
WHERE ra.cv__Contact__c=ra.cv__Contact__c AND ra.cv__Address_Type__c='home' 
GROUP BY ra.cv__Contact__c
HAVING COUNT (ra.cv__Contact__c)>1
ORDER BY ra.cv__Contact__c;

我明白了

列 'dbo.cv__Related_Address_Detail__c.Contact_VIS_Number__c' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。 消息 145,级别 15,状态 1,行 514 如果指定了 SELECT DISTINCT,则 ORDER BY 项必须出现在选择列表中。

帮助

【问题讨论】:

  • 您需要什么帮助?错误告诉你问题是什么。 a)选择不在组中的东西,b)按不在组中的东西排序。想想看。你在期待什么?
  • 我不明白这个错误..第一个错误说我需要 Group By.. 当我使用 group by 它给了我另一个错误。我删除了订单,但仍然收到该错误的第一部分。抱歉,我只是不明白该错误。我真的不想分组..我只想看到那些有> 1个地址被标记为家的人..无论我如何尝试计数都会给我一个错误..

标签: count having


【解决方案1】:

所以它采取了几种不同的方法,但我发现问题只是我试图输出太多没有被聚合的字段..

所以我将我的字段括起来并进行了另一个内部连接以获取计数

SELECT c.id, COUNT(ra.id) 'Count'
FROM dbo.cv__Related_Address_Detail__c ra JOIN dbo.Contact c on 
c.Id=ra.cv__Contact__c
WHERE ra.cv__Address_Type__c='Home'
GROUP BY c.Id
Having COUNT(ra.id)>1
)prime
ON c.id=prime.Id

【讨论】:

    猜你喜欢
    • 2019-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2017-09-20
    • 2011-02-24
    • 1970-01-01
    相关资源
    最近更新 更多