gpt4 book ai didi

sql - 根据 Excel 用户表单下拉组合框中选定的月份创建 SQL 查询

转载 作者:行者123 更新时间:2023-12-03 02:22:57 27 4
gpt4 key购买 nike

我有一个用于出勤报告的 Excel 用户表单。在表单上,​​用户选择他们想要查看的员工,然后他们可以选中显示年初至今的框,或者从组合框下拉列表中选择各个月份。这都是为了查询我们的sql服务器上有数据。今年迄今为止很容易,因为我知道如何使用当前日期和一年中第一天的变量。我遇到的问题是如何将用户的月份选择转换为可用的查询。例如:如果用户在下拉列表中选择一月,则查询将为

select * from [dbo.mytablename]
where [agent name] = '<value from a textbox that I know how to pass in>'
and [cal date] > '1/1/2018' and [cal date] < '1/31/2018'

现在我唯一的想法是在工作簿中的保留电子表格上放置包含每月第一天和最后一天的单元格,然后使用单元格值。但如果可能的话我想避免这种情况。如果您有任何想法那就太好了!

最佳答案

首先

and [cal date] > '1/1/2018' and [cal date] < '1/31/2018'

将选择 1 月 1 日至 1 月 30 日的所有数据,不包括 1 月 31 日的任何数据。

记住这一点,检查应该是

and [cal date] > '1/1/2018' and [cal date] < '2/1/2018'

因此,如果您确实有一个月的时间,您可以执行如下操作

select * from [dbo.mytablename] t
join
(values
('Jan', 1),('Feb',2),('Mar', 3),
('Apr', 4),('May',5),('Jun', 6),
('Jul', 7),('Aug',8),('Sep', 9),
('Oct', 10),('Nov',11),('Dec', 12)
)v(mon,num)
on v.mon='<month name received from a text box>'
t.[agent name] = '<value from a textbox that I know how to pass in>'
and t.[cal date] > cast(cast(v.num as varchar)+'/1/2018' as date)
and t.[cal date] < cast(cast((v.num+1)%12 as varchar)+'/1/'+ cast(2018+ (v.num/12) as varchar) as date)

关于sql - 根据 Excel 用户表单下拉组合框中选定的月份创建 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177782/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com