bar*_*tek 1 sql t-sql database sql-server
我有一个数据库,其中有多个公司名称。我需要进行查询以查找:公司名称、条目数、最新条目的日期。
最好按最新条目的日期排序(但我什至可以在 Excel 中排序)
SELECT
/*this is the list of companies with distinct name */
DISTINCT(K.COMPANY) AS company_name,
/*where I count entries*/
(SELECT COUNT(KK.COMPANIES) FROM COMPANIES KK
WHERE KK.COMPANY = K.company_name) AS company_count,
/*where I try to get newest entry date*/
(SELECT TOP 1 ENTRY_DATE FROM COMPANIES KKK
WHERE KKK.COMPANY = K.company_name
ORDER BY KKK.ENTRY_DATE DESC) AS company_date
FROM
COMPANIES K
WHERE
K.ENTRY_DATE > '20211004 00:00:00'
ORDER BY
K.ID_KAMSOFT DESC
Run Code Online (Sandbox Code Playgroud)
我收到错误:
无效的列名
在子查询中。基本上,子查询看不到条件中外部查询的数据xxx.COMPANY = K.company_name。
它应该非常简单,但它不起作用。
您不需要使用子查询,尝试直接GROUP BY
SELECT
K.COMPANY AS company_name,
COUNT(1) AS company_count,
MAX(ENTRY_DATE) AS company_date
FROM
COMPANIES K
WHERE
K.ENTRY_DATE > '20211004 00:00:00'
GROUP BY
K.COMPANY
ORDER BY
3 DESC
Run Code Online (Sandbox Code Playgroud)