【发布时间】:2021-12-05 10:18:10
【问题描述】:
我有一个数据库,其中有多个公司名称。我需要进行查询以找到:公司名称、条目数、最新条目日期。
最好按照最新输入的日期进行排序(但我什至可以在 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
我收到一个错误:
列名无效
在子查询中。基本上,子查询在条件xxx.COMPANY = K.company_name 中看不到来自外部查询的数据。
它应该很简单,但它不起作用。
【问题讨论】:
-
distinct(K.COMPANY) as company_name:您不能在子查询中使用别名。将K.company_name更改为K.company。 -
一个 COMPANIES 表有多个具有相同 COMPANY_NAME 的行似乎存在严重缺陷。
-
我知道,但是这家公司肯定是蚂蚁公司——这只是例子 :) 谢谢,所有输入
-
@Nikola Markovinović - 顺便说一句,你的解决方案也有效,我想我会创建这个采石场作为第二个答案,只是为了教育目的......或者你应该这样做,这样我就可以投票了?
-
谢谢先生。 Bartek,我只是想帮你。我不再做答案了,但你可能会。
标签: sql sql-server database tsql