Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 当列中至少有一个值为真时,选择组中的整个时间段_Sql_Sql Server - Fatal编程技术网

Sql 当列中至少有一个值为真时,选择组中的整个时间段

Sql 当列中至少有一个值为真时,选择组中的整个时间段,sql,sql-server,Sql,Sql Server,我正在尝试编写一个select语句,如果约束至少为真一次,它将使我能够查看整个时间段。附件是我正在处理的表格的一个片段。特点是称为A042和A043(mytable.pot)的铝电解槽、日期时间(mytable.dags)、约束、布尔值、钒浓度(mytable.V_low)和行号(mytable.Rn)。正如您所看到的,在A042的9天期间中,约束仅在3天内为真,但我希望查询返回约束为1之前和之后的所有日期。换句话说,如果至少一次为1,则应返回给定罐的整个9天周期 原因是要检查的罐很多,该值通常

我正在尝试编写一个select语句,如果约束至少为真一次,它将使我能够查看整个时间段。附件是我正在处理的表格的一个片段。特点是称为A042和A043(mytable.pot)的铝电解槽、日期时间(mytable.dags)、约束、布尔值、钒浓度(mytable.V_low)和行号(mytable.Rn)。正如您所看到的,在A042的9天期间中,约束仅在3天内为真,但我希望查询返回约束为1之前和之后的所有日期。换句话说,如果至少一次为1,则应返回给定罐的整个9天周期

原因是要检查的罐很多,该值通常为0。因此,当检测到异常时,我需要一份关于给定pot整个周期的报告。在这里显示的示例中,它应该只返回罐A042的9天周期,因为所有A043天的约束都是0

如何创建另一列(mytable.Low_period),该列在pot A042的所有天数中为1,而在A043的所有天数中为0,这样我就可以轻松地以(其中mytable.Low_period=1)结束语句?也欢迎提出其他建议

我没有管理员权限创建过程和/或更改表

提前谢谢


一种方法使用窗口函数:

select t.*
from (select t.*, max(v_low) over (partition by pot) as max_v_low
      from t
     ) t
where max_v_low > 0;

如果无法创建/更改表,则无法创建另一列。也许您正在请求有关select查询的帮助。我建议您提供一个示例,说明您迄今为止尝试过(您的查询)的内容,以及哪些内容不起作用。此外,如果您能提供所需的结果,这将是有益的。最后,以内联文本的形式提供数据示例比图像更好。太好了!谢谢,正是我想要的。