SQL - al agregar mas condiciones OR al query me da diferente resultado

 
Vista:
Imágen de perfil de Antonio
Val: 30
Ha aumentado su posición en 3 puestos en SQL (en relación al último mes)
Gráfica de SQL

al agregar mas condiciones OR al query me da diferente resultado

Publicado por Antonio (30 intervenciones) el 24/05/2021 18:39:28
hola a todos tengo una consulta donde me regresa la suma de los minutos que filtra con las condiciones del tipo de línea fecha y el tipo.

solo que cuando coloco más condiciones en el filtrado de tipo me comienza a sumar o enviar datos que no cuadran con lo esperado

ejemplo yo se que el resultado es 0 pero la consulta me regresa 50

este esel query:

1
2
3
4
5
6
7
SELECT
    ISNULL(SUM(
        DATEDIFF(MINUTE,0,cast(TiempoParo AS DATETIME))
  ),0) AS 'MINUTE'
FROM PAROS
 
WHERE Fecha BETWEEN DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0) and DATEADD(ms,-3,DATEADD(dd,DATEDIFF(dd,0,GETDATE()),1)) AND Linea = 'Linea_Disco' AND TipoParo = '6' OR TipoParo = '5' OR TipoParo = '9'
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Francisco
Val: 150
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

al agregar mas condiciones OR al query me da diferente resultado

Publicado por Francisco (61 intervenciones) el 28/05/2021 23:38:35
Hola

Sentecia tiene un fallo de logica en OR

1
2
3
4
5
6
7
8
9
SELECT
    ISNULL(SUM(
        DATEDIFF(MINUTE,0,cast(TiempoParo AS DATETIME))
  ),0) AS 'MINUTE'
FROM PAROS
WHERE Fecha BETWEEN DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)
  AND DATEADD(ms,-3,DATEADD(dd,DATEDIFF(dd,0,GETDATE()),1))
  AND Linea = 'Linea_Disco'
  AND (TipoParo = '6' OR TipoParo = '5' OR TipoParo = '9');

o usando el operador IN
1
2
3
4
5
6
7
8
9
SELECT
    ISNULL(SUM(
        DATEDIFF(MINUTE,0,cast(TiempoParo AS DATETIME))
  ),0) AS 'MINUTE'
FROM PAROS
WHERE Fecha BETWEEN DATEADD(dd,DATEDIFF(dd,0,GETDATE()),0)
  AND DATEADD(ms,-3,DATEADD(dd,DATEDIFF(dd,0,GETDATE()),1))
  AND Linea = 'Linea_Disco'
  AND TipoParo IN ('6','5','9');

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar