SQL嵌套Select语句

逃避

我有以下SQL代码,但并没有达到我想要的结果。

SELECT
    POLICIES.CLIENTS_ID,
    POLICIES.CLIENTCODE,
    COUNT(POLICIES.POLICIES_ID) as [Total Policies],
    (
        SELECT 
            COUNT(POLICIES.POLICIES_ID) 
        FROM 
            POLICIES 
        WHERE 
            POLICIES.COVCODE = 'AUT'
    ) as [Auto Policies]

FROM
    POLICIES
    LEFT JOIN CLIENTS
        ON CLIENTS.CLIENTS_ID = POLICIES.CLIENTS_ID

WHERE
    POLICIES.CNR IS NULL

GROUP BY 
    POLICIES.CLIENTS_ID,
    POLICIES.CLIENTCODE

ORDER BY 
    POLICIES.CLIENTS_ID

我得到这样的结果:

ID  CODE    Total    Auto
3   ABCDE1  1        999999
4   ABCDE2  1        999999
5   ABCDE3  2        999999
6   ABCDE4  2        999999

我希望在最后一列中为该clientid存在的自动策略总数,而不是所有存在的自动策略。我相信我需要一个嵌套的select语句,以某种方式将所有类似的结果分组在clientid上,但是最终返回的行数超过了1行,并引发了错误。

如果我添加:

GROUP BY 
    POLICIES.CLIENTS_ID

我得到:

Subquery returned more than 1 value. This is not permitted when the....

任何帮助将不胜感激!谢谢

内维尔

您可以使用CASE语句执行此操作。代替SELECT子句中的子查询,请使用:

SUM(CASE WHEN POLICIES.COVCODE = 'AUT' THEN 1 ELSE 0 END) as [AUTO POLICIES]

正如马丁·史密斯(Martin Smith)所指出的。如果client_id有多个client_codes,则这将为您提供client_id / client_code每种组合的记录数。如果client_id与client_code是1:1,则这将为您提供每个不同的client_id的记录计数,我怀疑您的示例和问题中的情况是这样。

无关:您的Clients具有LEFT JOIN ,但您在Clients查询时不会在任何地方使用表。如果您不需要选择或按其任何字段进行过滤,请考虑将其删除,因为这只是未使用的开销。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询错误(嵌套的select语句)

来自分类Dev

嵌套的mysql select语句

来自分类Dev

Oracle SQL:Select语句中嵌套REPLACE()的替代方法?

来自分类Dev

如何在SQL中使用嵌套的SELECT语句?

来自分类Dev

嵌套IF语句SQL

来自分类Dev

SQL嵌套CASE语句

来自分类Dev

SELECT嵌套在WITH语句中

来自分类Dev

将嵌套SQL SELECT语句中的SELECT结果分配给变量-PHP

来自分类Dev

SQL嵌套CASE WHEN语句

来自分类Dev

嵌套 SQL 语句之间的差异

来自分类Dev

SQL Plus 嵌套选择语句

来自分类Dev

SQL组合SELECT语句

来自分类Dev

简化SQL SELECT语句?

来自分类Dev

SQL问题SELECT语句

来自分类Dev

SQL select语句混乱

来自分类Dev

复杂的SELECT SQL语句

来自分类Dev

多表 SQL SELECT 语句

来自分类Dev

在更新语句中具有select子查询的嵌套SQL查询

来自分类Dev

“以困难的方式学习sql”-练习13:嵌套的select语句有麻烦

来自分类Dev

如何使用ms sql server基于select语句使用嵌套插入

来自分类Dev

MySQL优化嵌套的SELECT和INSERT语句

来自分类Dev

SOQL从嵌套的SELECT语句获取名称

来自分类Dev

使用Spring JDBC执行嵌套的select语句

来自分类Dev

将我的嵌套Select语句转换为Update语句

来自分类Dev

SQL SELECT语句-相同的列名

来自分类Dev

select语句中的sql转换

来自分类Dev

在SELECT中的IF语句SQL查询

来自分类Dev

SQL IF NULL来自SELECT语句

来自分类Dev

SELECT *语句上的SQL IFNULL