如何在带有 DropDownList 控制参数的 .aspx 网页上将查询格式化为 return 日期不晚于 90 天的数据?
How to format a query to return data dating no later than 90 days on a .aspx web page with DropDownList control parameter?
变量@status在一个网页上取三个值,C、N、V,如果选择调用下面的查询。
如何在下面的查询中将查询格式化为 return 日期不迟于 90 天的数据,以便 return 如果选择,日期 (entry_date) 不迟于 90 天的项目只有 @status = 'C'
,但对于其他状态 V 和 N 到 return 没有任何日期限制的数据?
<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="SELECT W.order_id, w.entry_date, w.s_num, w.prot_num, w.i_num, w.phm_num, w.status, w.Comments, w.UName, w.prStatus, S.S_Name,
ISNULL(p.Phm_fname, ' ') + ' ' + ISNULL(p.Phm_lname, ' ') AS 'PhmName', ISNULL(S.PHM_CITY, ' ') + ' ' + ISNULL(S.PHM_STATE, ' ') AS 'Phm_city'
FROM Web_Ship AS w INNER JOIN
Phm_of_rcrd AS p ON p.phm_num = w.phm_num INNER JOIN
Stdy_Site AS S ON w.s_num = S.S_Num
WHERE (w.status = @status)
ORDER BY w.order_id DESC"
<SelectParameters>
<asp:ControlParameter ControlID="StatusDropDownList" Name="Status"
PropertyName="Text" Type="Char" />
</SelectParameters>
</asp:SqlDataSource>
您不需要 IF 语句,只需稍微修改一下 Where 子句,如下所示:
WHERE (w.status = @status)
AND (
(@status = 'C' AND entry_date >= DATEADD(DAY, -90 , GETDATE()))
OR
(@status IN ('V','N'))
)
变量@status在一个网页上取三个值,C、N、V,如果选择调用下面的查询。
如何在下面的查询中将查询格式化为 return 日期不迟于 90 天的数据,以便 return 如果选择,日期 (entry_date) 不迟于 90 天的项目只有 @status = 'C'
,但对于其他状态 V 和 N 到 return 没有任何日期限制的数据?
<asp:SqlDataSource ID="SqlDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="SELECT W.order_id, w.entry_date, w.s_num, w.prot_num, w.i_num, w.phm_num, w.status, w.Comments, w.UName, w.prStatus, S.S_Name,
ISNULL(p.Phm_fname, ' ') + ' ' + ISNULL(p.Phm_lname, ' ') AS 'PhmName', ISNULL(S.PHM_CITY, ' ') + ' ' + ISNULL(S.PHM_STATE, ' ') AS 'Phm_city'
FROM Web_Ship AS w INNER JOIN
Phm_of_rcrd AS p ON p.phm_num = w.phm_num INNER JOIN
Stdy_Site AS S ON w.s_num = S.S_Num
WHERE (w.status = @status)
ORDER BY w.order_id DESC"
<SelectParameters>
<asp:ControlParameter ControlID="StatusDropDownList" Name="Status"
PropertyName="Text" Type="Char" />
</SelectParameters>
</asp:SqlDataSource>
您不需要 IF 语句,只需稍微修改一下 Where 子句,如下所示:
WHERE (w.status = @status)
AND (
(@status = 'C' AND entry_date >= DATEADD(DAY, -90 , GETDATE()))
OR
(@status IN ('V','N'))
)