Tsql T_SQL在一行多列中计算特定值

Tsql T_SQL在一行多列中计算特定值,tsql,Tsql,我对在MSSM中计算一行中具有特定值的单元格没有什么问题。 表看起来像 身份证件 月 1. 2. 3. 4. 5. 6. 7. 8. 9 10 11 12 13 14 15 16 11 12 13 14 15 16 ... 31 5000 1. 无效的 无效的 1. 1. 无效的 1. 1. 无效的 无效的 2. 2. 2. 2. 2. 无效的 无效的 3. 3. 3. 3. 3. 无效的 ... 1. 我强烈建议您放弃当前的表设计,改为每月按记录而不是按列存储一天。也就是说,使用此设计: ID

我对在MSSM中计算一行中具有特定值的单元格没有什么问题。 表看起来像

身份证件 月 1. 2. 3. 4. 5. 6. 7. 8. 9 10 11 12 13 14 15 16 11 12 13 14 15 16 ... 31 5000 1. 无效的 无效的 1. 1. 无效的 1. 1. 无效的 无效的 2. 2. 2. 2. 2. 无效的 无效的 3. 3. 3. 3. 3. 无效的 ... 1.
我强烈建议您放弃当前的表设计,改为每月按记录而不是按列存储一天。也就是说,使用此设计:

ID   | Date       | Value
5000 | 2021-01-01 | NULL
5000 | 2021-01-02 | NULL
5000 | 2021-01-03 | 1
5000 | 2021-01-04 | 1
5000 | 2021-01-05 | NULL
...
5000 | 2021-01-31 | 5
然后使用此查询:

选择
身份证件
转换(varchar(7),日期,120),
计数(当值=1时,则为1结束)为一个
从你的桌子上
分组
身份证件
转换(varchar(7),日期,120);

看看这个:谢谢,表已经重建,对于DB的其他部分来说,它看起来就像它的套件。