当前位置: 首页 > 面试题库 >

sql查询获取从一月到当月的所有数据,即使没有记录

许丁雷
2023-03-14
问题内容

我对sql不好,所以任何帮助世界都很棒

我有一个SQL查询,该查询获取从1月到本月注册的记录

我的代码示例

SELECT DatePart(YEAR, p.createStamp) as TheYear, DatePart(MONTH, p.createStamp) as TheMonth ,  COUNT(p.pId) AS TOTALCOUNT 
FROM profile p with(nolock)
where DatePart(YEAR, p.createStamp) = DATEPART(YEAR, GETDATE())
GROUP BY YEAR(p.createStamp), MONTH(p.createStamp)
ORDER BY YEAR(p.createStamp), MONTH(p.createStamp)

查询将如何带回

2月= 2、3月= 3、4月= 4和5月= 5

我想让它带回Jan = 1(总数为0)和June = 6(总数为0)以及任何想法如何做到这一点?

谢谢你。


问题答案:

这是创建月/年组合并将其用作查询基础的循环:

declare @startDate as datetime
set @startDate = '1/1/13'

declare @currentDate as datetime
set @currentDate = '6/6/13'

select
     month(@currentDate) as monthOfDate
    ,year(@currentDate) as yearOfDate
into #allDates
where 1=0

while (@startDate <= @currentDate)
begin
    insert into #allDates values (month(@startDate),year(@startDate))
    set @startDate = dateadd(m,1,@startDate)
end

select 
     _monthYear.yearofDate
    ,_monthYear.monthOfDate
    , COUNT(p.pId) as total
from #allDates _monthYear
left join profile p with(nolock)
    on month(p.createStamp) = _monthYear.monthOfDate
    and year(p.createStamp) = _monthYear.yearOfDate
group by
     _monthYear.yearofDate
    ,_monthYear.montOfDate

drop table #allDates


 类似资料:
  • 输出量 2017年11月1日星期三 星期四02-十一月-2017 2017年11月3日星期五 2017年11月4日星期六 星期日05-十一月-2017 2017年11月6日星期一 2017年11月7日星期二 ==========工作日=========== 2017年11月8日星期三 2017年11月9日星期四 2017年11月10日星期五 2017年11月11日星期六 2017年11月12日星期

  • 问题内容: 我需要选择数据库中上个月创建的所有行。 例如,如果当前月份是一月,那么我想返回在十二月创建的所有行,如果月份是二月,那么我想返回在一月份创建的所有行。我的数据库中有一列,其中列出了以此格式创建的日期:。 问题答案:

  • 问题内容: 我有一张桌子,上面有很多日期的记录。我想执行一个查询,该查询仅返回落在该日期月份的最后一天的记录。就像是: 除非这行不通,否则参数的右边应该是返回正确比较的月份的最后一天。 基本上有一种简洁的方法可以进行这种比较吗?等效于四分之一的终端也将非常有帮助,但无疑会更加复杂。 编辑: 本质上,我想检查给定的日期是否是它所属的月份(或季度)中的最后一个。如果是,请返回该记录。这将涉及一些函数来

  • 问题内容: 这个问题已经在这里有了答案 : 从时间戳列中选择当前月份记录mysql (9个答案) 如何在MySQL的当月第一天和当日之间进行选择? (15个答案) 6年前关闭。 如何从MySql数据库表中选择“当前月”记录? 像现在这样,当前月份是一月。我想获取一月月份的记录,其中我的表列的数据类型是。我想知道sql查询。 谢谢 问题答案: 该查询将为您工作:

  • 假设Employee_Info表中有三名员工: 我必须编写一个select sql查询,输出如下: 正如您所看到的,新的一行应该包含某个特定雇员的所有工资的总和。

  • 问题内容: 如何记录django应用程序执行的所有SQL查询? 我想记录所有内容,包括来自管理站点的SQL。我看到了这个问题和一个常见问题解答,但是我仍然不知道应该把它放在哪里 将所有内容记录到一个文件? 所以我的问题是-我应该怎么做才能拥有一个记录所有SQL语句的文件(例如all-sql.log)? 问题答案: 也许看看https://github.com/django-debug-toolba