Sql 内部查询结果的分组依据不起作用

Sql 内部查询结果的分组依据不起作用,sql,sql-server,Sql,Sql Server,我想对内部查询的结果按ACCOUNTNO分组 SELECT * FROM (SELECT O.CUSTADDRESSID, O.ACCOUNTNO, D.ORGANISATIONNAME FROM db.sc.TP_CUSTOMER_ADDRESSES O FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO ) a GROUP BY ACC

我想对内部查询的结果按ACCOUNTNO分组

SELECT * 
FROM (SELECT O.CUSTADDRESSID, O.ACCOUNTNO, D.ORGANISATIONNAME
      FROM db.sc.TP_CUSTOMER_ADDRESSES O FULL OUTER JOIN
           db.sc.TP_CUSTOMER_BUSINESS D 
      ON O.ACCOUNTNO = D.ACCOUNTNO
     ) a 
GROUP BY ACCOUNTNO 
ORDER BY ACCOUNTNO;
但我得到了这个错误:

Msg 8120,第16级,状态1,第1行
列“a.CUSTADDRESSID”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中

我需要帮助。谢谢。

您需要删除“GROUP BY ACCOUNTNO”-查询如下所示:

SELECT * FROM (SELECT
   O.CUSTADDRESSID, O.ACCOUNTNO,
   D.ORGANISATIONNAME
FROM
   db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
ORDER BY ACCOUNTNO
SELECT * FROM (SELECT
       O.CUSTADDRESSID, O.ACCOUNTNO,
       D.ORGANISATIONNAME
    FROM
       db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
    GROUP BY ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME
    ORDER BY ACCOUNTNO
或列出group by中的所有列-查询如下所示:

SELECT * FROM (SELECT
   O.CUSTADDRESSID, O.ACCOUNTNO,
   D.ORGANISATIONNAME
FROM
   db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
ORDER BY ACCOUNTNO
SELECT * FROM (SELECT
       O.CUSTADDRESSID, O.ACCOUNTNO,
       D.ORGANISATIONNAME
    FROM
       db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
    GROUP BY ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME
    ORDER BY ACCOUNTNO
您需要删除“GROUP BY ACCOUNTNO”-查询如下所示:

SELECT * FROM (SELECT
   O.CUSTADDRESSID, O.ACCOUNTNO,
   D.ORGANISATIONNAME
FROM
   db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
ORDER BY ACCOUNTNO
SELECT * FROM (SELECT
       O.CUSTADDRESSID, O.ACCOUNTNO,
       D.ORGANISATIONNAME
    FROM
       db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
    GROUP BY ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME
    ORDER BY ACCOUNTNO
或列出group by中的所有列-查询如下所示:

SELECT * FROM (SELECT
   O.CUSTADDRESSID, O.ACCOUNTNO,
   D.ORGANISATIONNAME
FROM
   db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
ORDER BY ACCOUNTNO
SELECT * FROM (SELECT
       O.CUSTADDRESSID, O.ACCOUNTNO,
       D.ORGANISATIONNAME
    FROM
       db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO) a 
    GROUP BY ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME
    ORDER BY ACCOUNTNO

group by和select不相同,下面是一个示例:

SELECT ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME FROM (
  SELECT
   O.CUSTADDRESSID, O.ACCOUNTNO,
   D.ORGANISATIONNAME
   FROM
   db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO
   ) a 
 GROUP BY ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME  ORDER BY ACCOUNTNO

group by和select不相同,下面是一个示例:

SELECT ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME FROM (
  SELECT
   O.CUSTADDRESSID, O.ACCOUNTNO,
   D.ORGANISATIONNAME
   FROM
   db.sc.TP_CUSTOMER_ADDRESSES O    FULL OUTER JOIN db.sc.TP_CUSTOMER_BUSINESS D ON O.ACCOUNTNO = D.ACCOUNTNO
   ) a 
 GROUP BY ACCOUNTNO, CUSTADDRESSID, ORGANISATIONNAME  ORDER BY ACCOUNTNO

编辑问题并提供示例数据和所需结果。编辑问题并提供示例数据和所需结果。