Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何根据条件按结果集从分组中获取数据?_Sql_Sql Server_Group By - Fatal编程技术网

Sql 如何根据条件按结果集从分组中获取数据?

Sql 如何根据条件按结果集从分组中获取数据?,sql,sql-server,group-by,Sql,Sql Server,Group By,我得到的数据是每年和每月两个日期组之间的数据。现在为了调试的目的,我想从组结果中获取特定月份的检查数据,但我不知道如何做到这一点 查询: SELECT CAST(MONTH(ActiveDate) AS VARCHAR(2)) + '-' + CAST(YEAR(ActiveDate) AS VARCHAR(4)) AS MyDate, Count(*) AS Stats FROM JobListings where CompanyID = 100 and Status = 'Act

我得到的数据是每年和每月两个日期组之间的数据。现在为了调试的目的,我想从组结果中获取特定月份的检查数据,但我不知道如何做到这一点

查询:

SELECT CAST(MONTH(ActiveDate) AS VARCHAR(2)) + '-' + CAST(YEAR(ActiveDate) AS VARCHAR(4)) AS MyDate, 
    Count(*) AS Stats 
FROM JobListings
where CompanyID = 100
and Status = 'Active'
and (ActiveDate >= '9/1/2020' 
and ActiveDate <= '2/28/2021')
GROUP BY CAST(MONTH(ActiveDate) AS VARCHAR(2)) + '-' + CAST(YEAR(ActiveDate) AS VARCHAR(4))

现在我想要的是获取“10-2020”的实际3条记录,那么如何插入父查询以从特定月份和年份的组结果集中获取实际数据呢?

通过此查询,这应该只返回3条记录:

SELECT *
FROM JobListings
where 
    CompanyID = 100
    and Status = 'Active'
    and ActiveDate >= '10/01/2020' 
    and ActiveDate <= '11/01/2020'

这里需要一个窗口聚合,并且没有
分组依据

此外,我建议您使用
EOMONTH
,而不是像以前那样分割日期和选角

选择
EOMOUNT(生效日期),
按EOMONTH(ActiveDate)统计(分区)上的(*)作为统计数据,
*
从工作清单
哪里
公司ID=100
和状态='活动'
和(ActiveDate>=“2020年9月1日”

和ActiveDate您必须编写一个单独的查询(不针对该月份和年份进行分组和筛选),以获得实际的data@eshirvana但问题是我得到了很多“十月”月份的数据。我怎么才能只得到“十月”月份的这3个数据呢“分组结果”中包含的月份是哪个?@eshirvana不,您不需要这样做。实际上,此查询只提供了2条记录,而该分组结果给出了“十月”的计数3这就是为什么我不明白为什么会有1条记录的差异抱歉,10月有31天,所以现在应该可以了抱歉,但这仍然给了我2条记录,而不是3条。当我运行ActiveDate>='9/1/2020'和ActiveDate时,你的数据中有一个问题。我可以将JobListingID包括在组中吗?但是我我猜这会改变结果,对吗?这会改变显示结果,他只需要一条语句进行调试
SELECT *
FROM JobListings
where 
    CompanyID = 100
    and Status = 'Active'
    and ActiveDate >= '10/01/2020' 
    and ActiveDate <= '11/01/2020'
select * 
, CAST(MONTH(ActiveDate) AS VARCHAR(2)) + '-' + CAST(YEAR(ActiveDate) AS VARCHAR(4)) Mydate
from JobListings
where CAST(MONTH(ActiveDate) AS VARCHAR(2)) + '-' + CAST(YEAR(ActiveDate) AS VARCHAR(4)) = '10-2020'