请帮看一下,我要求出上个月的数据
表里面的工资是截至2月的,我将GETDATE()改成我的日期字段deptdate,也没查询出1月的数据,请问是哪里写的有问题?

SELECT deptdate,province 省,city 市,posts 职位,dname 姓名,sum(Ssalary)应发底薪,sum(Psalary)绩效,sum(comsalary)提成,sum(totalsalary)汇总合计,sum(realsalary) 实发金额 

FROM [dbo].[dept]

WHERE deptdate >= DATEADD(month, DATEDIFF(month, 0, GETDATE()) - 1, 0)

AND deptdate < DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)

${if(a=='熊婷'||a=='胡桂丹',"","and upstaff = '"+ a+"'")}

${if(len(pro) == 0,"","and province in ('" + pro + "')")}

${if(len(city) == 0,"","and city in ('" + city + "')")}

${if(len(year) == 0,"","and year(deptdate) in ('" + year + "')")}

${if(len(month) == 0,"","and month(deptdate) in ('" + month + "')")}

GROUP BY province,city,posts,dname,deptdate

image.png

FineReport 百煮味香 发布于 2023-3-30 09:31 (编辑于 2023-3-30 09:34)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2023-3-30 09:45

猜测是不是这样

FROM [dbo].[dept]

WHERE deptdate >= DATEADD(month, DATEDIFF(month, 0, select(max(deptdate) from [dbo].[dept] )) - 1, 0)

AND deptdate < DATEADD(month, DATEDIFF(month, 0, select(max(deptdate) from [dbo].[dept])), 0)

最佳回答
0
qiqits1984Lv6中级互助
发布于2023-3-30 09:45

预计是你的日期类型不匹配! 检查一下,参数的日期格式 ,与数据库日期的格式 是否一致,先不用参数,手写一个日期,测试一下结果 1

最佳回答
0
linbodingLv6中级互助
发布于2023-3-30 09:46(编辑于 2023-3-30 09:47)

确认一下deptdate是不是日期类型,如果不是的话需要类型转化,字符串转日期。month函数只针对日期类型的数据

  • 4关注人数
  • 351浏览人数
  • 最后回答于:2023-3-30 09:47
    请选择关闭问题的原因
    确定 取消
    返回顶部