sql-server - 如何使用 SQL 进行汇总组?
问题描述
我创建了一个 SQL 存储过程:
CREATE PROCEDURE [stored procedure name]
(@Location [varchar](255),
@start_date datetime,
@end_date datetime)
AS
BEGIN
SELECT id, location, name, begin_date, age, career, phone_number
FROM information
WHERE [begin_date] BETWEEN @start_date AND @end_date
AND [location] = @Location
END
并且在地点有不同的群体:上海、纽约、多伦多、悉尼、东京。但现在我想要多一个类别:全部。此类别将显示所有位置。所以我可以在SSRS中使用它。
我写的:
select 1 as sort_order, 'All' as location
union
select distinct 2 as sort_order, location from information
order by sort_order, location
但这只会返回一个下拉列表:
"All", "Shanghai", "New York", "Toronto", "Sydney", "Tokyo"
当我点击上海、纽约、多伦多、悉尼、东京时,它工作正常并显示相应的数据。但是当我点击“全部”时,没有数据出现。如何更改我的代码以实现目标?
解决方案
我认为您需要All
考虑:
and ([location] = @Location or @location = 'All')
通常,使用一个NULL
值来避免与有效值冲突:
and ([location] = @Location or @location is null)
推荐阅读
- c# - 在内存中使用 SQLite 运行 EF Core - 未配置数据库提供程序
- php - 大量的 CURL [PHP/Python]
- azure-devops - TFS 扩展 - TF400813: 用户 ... 无权访问此资源
- xpath - XPath concat 函数不起作用
- python - 将非数值数据应用于神经网络
- android - Android:JSONObject 无效值和 Wordpress 的 API
- c# - 从 ObservableCollection 中删除多个项目
- python - 使用python子进程执行命令并隐藏控制台窗口
- swift - 我的水平滚动视图不起作用
- hyperledger-composer - 尝试启动业务网络时出错。最后一个错误是 Error: Error: 14 UNAVAILABLE: Trying to connect an http1.x server