【发布时间】:2022-01-05 16:25:09
【问题描述】:
我有一个 SQL 数据库,其中包含一些由第三人每天添加的数据,每个人必须通过一个表单将 10 行数据添加到我的一个表中,但有时有人忘记添加其中一行,每个行代表不同的结果,我想做的是显示在特定日期和班次中没有插入的行,这是表格的示例
| data_id | user | date | shift | machine |
|---|---|---|---|---|
| 3227 | 100 | 28/11/2021 | 1 | TG01 |
| 3228 | 103 | 28/11/2021 | 1 | TG02 |
| 3229 | 103 | 28/11/2021 | 1 | TG03 |
| 3230 | 100 | 28/11/2021 | 1 | TG04 |
| 3231 | 105 | 28/11/2021 | 1 | TG05 |
| 3232 | 100 | 28/11/2021 | 1 | TG06 |
| 3233 | 107 | 28/11/2021 | 1 | TG07 |
| 3234 | 100 | 28/11/2021 | 1 | TG08 |
| 3235 | 108 | 28/11/2021 | 1 | TG09 |
| 3236 | 100 | 28/11/2021 | 1 | TG010 |
| 3237 | 101 | 28/11/2021 | 2 | TG01 |
| 3238 | 101 | 28/11/2021 | 2 | TG04 |
| 3239 | 101 | 28/11/2021 | 2 | TG05 |
| 3240 | 109 | 28/11/2021 | 2 | TG06 |
| 3241 | 106 | 28/11/2021 | 2 | TG07 |
| 3242 | 101 | 28/11/2021 | 2 | TG08 |
每个班次我都必须有 TG01、TG02、TG03 ....TG10,我如何在像班次 2 这样的情况下显示缺少哪些? 我想使用 sql 查询在 powerbi 中显示它,而不必每天手动检查它
【问题讨论】:
-
您想要一个笛卡尔积(用户、日期、班次、机器)减去您的表格。
-
提问时,您需要提供minimal reproducible example: (1) DDL 和样本数据填充,即 CREATE 表和 INSERT T-SQL 语句。 (2) 你需要做什么,即逻辑和你的代码尝试在 T-SQL 中实现它。 (3) 期望的输出,基于上述#1 中的样本数据。 (4) 您的 SQL Server 版本 (SELECT @@version;)。
-
MySQL SQL Server - 请更正您的标签。
-
@Yitzhak Khabinsky 感谢您的提醒
-
@Dale K 我同时使用这两个标签,因为我使用 mysql 和 sql-server 具有相同的结构和数据,mysql 仅用于离线测试,而 sql-server 是主要的
标签: mysql sql sql-server powerbi