Ver Mensaje Individual
  #2 (permalink)  
Antiguo 12/06/2020, 16:48
yuo2
 
Fecha de Ingreso: diciembre-2008
Ubicación: PERU
Mensajes: 294
Antigüedad: 15 años, 4 meses
Puntos: 23
Sonrisa Respuesta: query con variables en sql server

Cita:
Iniciado por antonio_dsanchez Ver Mensaje
hola a todos tengo un query y quiero agregar un grupo de variables que van a afectar al query

este es mi query

Código SQL:
Ver original
  1. SELECT B.Part_No,
  2.         B.Name,
  3.  
  4. SUM(A.Quantity) AS 'Cantidad OK',
  5.  
  6.          ISNULL((SELECT SUM(D.Quantity) FROM Part_v_Scrap D
  7. WHERE A.Job_Key = D.Job_Key AND A.Part_Key = D.Part_Key AND CONVERT(DATE,A.Change_Date) BETWEEN @FechaInicio AND @FechaFin AND CONVERT(DATE,D.Add_Date) BETWEEN @FechaInicio AND @FechaFin),0) AS 'SCRAP',
  8.  
  9. ISNULL((SELECT SUM (COALESCE (A.Quantity, 0)) FROM Part_v_Container_Change2 AS A
  10. WHERE CONVERT(DATE,A.Change_Date) BETWEEN @FechaInicio AND @FechaFin
  11.         AND A.Container_Status = 'Rework' AND A.Last_Action = @Linea
  12.         AND A.Active = 1 ),0)  AS 'Cantidad Retrabajo',
  13.        
  14.          ISNULL((SELECT SUM(D.Quantity) FROM Part_v_Scrap D
  15. WHERE A.Job_Key = D.Job_Key AND A.Part_Key = D.Part_Key AND CONVERT(DATE,A.Change_Date) BETWEEN @FechaInicio AND @FechaFin AND CONVERT(DATE,D.Add_Date) BETWEEN @FechaInicio AND @FechaFin),0) +
  16.         ISNULL((SELECT SUM (COALESCE (A.Quantity, 0)) FROM Part_v_Container_Change2 AS A
  17. WHERE CONVERT(DATE,A.Change_Date) BETWEEN @FechaInicio AND @FechaFin
  18.         AND A.Container_Status = 'Rework' AND A.Last_Action = @Linea
  19.         AND A.Active = 1 ),0)  AS 'Total defectos'
  20.  
  21.  
  22. FROM Part_v_Container_Change2 A
  23.  
  24.   INNER JOIN Part_v_part B ON A.Part_Key = B.Part_Key
  25.  
  26. WHERE CONVERT(DATE,A.Change_Date) BETWEEN @FechaInicio AND @FechaFin
  27. AND A.Location = @Linea
  28.       AND (A.Last_Action = 'Added at Container Form'
  29.         OR A.Last_Action = 'Container Full')
  30. GROUP BY b.name, b.Part_Key, b.Part_No,A.Job_Key,A.Part_Key, CONVERT(DATE,A.Change_Date),A.Container_Status

quiero agregar un grupo de variables que va a afectar a A.Location en el query dependiendo el que el usuario mande dentro del grupo de variables

por ejemplo

Grupo QUERY linea A = @lineaA Liena B = @LineaB

no se si hacerlo como un case algo asi

CASE WHEN @Linea = 'Linea_A' THEN @Linea = 'Linea-1' WHEN @Linea = 'Linea_B' THEN @Linea = 'Linea-2' ELSE result END;
Deberias mandar un ejemplo mas basico o simple para poder entender , se mas practico ;)

Mmmm.. al parecer quieres hacer un query dinamico? si es asi te recomiendo pasar todo tu script en una variable varchar y ejecutar con execute(@tu_script_query)