mysqli - 即使 SQL Server 中也不存在数据,如何在一个表中获取所有日期的日期范围
问题描述
我有一个名为 Tab1 的表名。即使缺少任何一天,我也想获得所有日期。
+-------------------+--------------------------+
|Name | dateCheck |
+-------------------+--------------------------+
| 1 | 2016-01-01 00:00:00.000 |
| 2 | 2016-01-02 00:00:00.000 |
| 3 | 2016-01-05 00:00:00.000 |
| 4 | 2016-01-07 00:00:00.000 |
+-------------------+--------------------------+
I need output like below :
+-------------------+--------------------------+
|Name | dateCheck |
+-------------------+--------------------------+
| 1 | 2016-01-01 00:00:00.000 |
| 2 | 2016-01-02 00:00:00.000 |
| 0 | 2016-01-03 00:00:00.000 |
| 0 | 2016-01-04 00:00:00.000 |
| 3 | 2016-01-05 00:00:00.000 |
| 0 | 2016-01-06 00:00:00.000 |
| 4 | 2016-01-07 00:00:00.000 |
解决方案
您可以使用日历表:
SELECT
COALESCE(t2.Name, 0) AS Name,
t1.dateCheck
FROM
(
SELECT '2016-01-01' AS dateCheck UNION ALL
SELECT '2016-01-02' UNION ALL
SELECT '2016-01-03' UNION ALL
SELECT '2016-01-04' UNION ALL
SELECT '2016-01-05' UNION ALL
SELECT '2016-01-06' UNION ALL
SELECT '2016-01-07'
) t1
LEFT JOIN yourTable t2
ON t1.dateCheck = t2.dateCheck;
推荐阅读
- c# - C# TextBox 自动大写锁定
- sublimemerge - Sublime Merge - “文件历史记录”的键盘快捷键
- snowflake-cloud-data-platform - Lock_timeout 可以在雪花中设置为相同的值 STATEMENT_TIMEOUT_IN_SECONDS 吗?
- php - PHP Serverless Slim 无法执行 imagettftext
- python - 从照片的像素确定到平面上参考点的真实距离的算法
- c# - 如何将自定义 ObservableCollection 元素复制到另一个自定义 ObservableCollection?
- apache-kafka-connect - 如何从具有复合键的主题创建 KSQL 表?
- c# - 从一个 ViewModel 到另一个 ViewModel 获取 PropertyChanged 通知
- php - PHP Heroku - 额外的 index.php 文件导致路由问题
- reactjs - 使用没有图标名称标签的 react-icons