SQL Server - Busqueda filtrada

 
Vista:
sin imagen de perfil
Val: 25
Ha aumentado 1 puesto en SQL Server (en relación al último mes)
Gráfica de SQL Server

Busqueda filtrada

Publicado por Alejandro (14 intervenciones) el 31/03/2020 12:23:07
Buenos días,


Mediante una búsqueda (la imagen que adjunto)

Tengo la siguiente consulta que no me saca correctamente los datos.



1
SELECT DISTINCT OF_Cod_Maq,sum(convert (numeric,OF_MT_Tirada))as MetrosL, sum( OF_Cantidad) as Cant, sum(convert (numeric,OF_M2_Papel)) as M2, sum(convert (numeric,OF_MT_Papel))as MetrosR FROM OrdenesHistorico JOIN VCLIENTE ON (OrdenesHistorico.OF_Cod_Cli = VCLIENTE.Clie_Codigo) where (OF_Cod_Maq >= '$MacIni' and OF_Cod_Maq <= '$MacFin') or (Fechtraspaso>= $Fec_Inic and Fechtraspaso <= $Fec_Fin) or (Clie_nombre>= '$Cliein' and Clie_nombre <= '$Cliefin')  group by OF_Cod_Maq


Me gustaría que me hiciese el filtrado a través de los datos que le mando, pudiendo dejar alguno en blanco.

La BD OrdenesHistorico y VCLIENTE están conectados por el código de cliente. Cuando hago la busqueda de Nombre de Cliente a nombre de cliente, tendría que sumar los datos de las lineas que llevan el código de cliente .

Gracias
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: 73
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

Busqueda filtrada

Publicado por Francisco (29 intervenciones) el 31/03/2020 20:15:05
Hola

Intenta con los siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
SELECT
   oh.OF_Cod_Cli,
   oh.OF_Cod_Maq,
   sum(convert(numeric, oh.OF_MT_Tirada)) AS MetrosL,
   sum(oh.OF_Cantidad) AS Cant,
   sum(convert(numeric, oh.OF_M2_Papel)) AS M2,
   sum(convert(numeric, oh.OF_MT_Papel)) AS MetrosR
FROM OrdenesHistorico oh
   INNER JOIN VCLIENTE vc
      ON oh.OF_Cod_Cli = vc.Clie_Codigo
WHERE
      ((oh.OF_Cod_Maq >= '$MacIni' AND oh.OF_Cod_Maq <= '$MacFin') OR '$MacIni' ISNULL OR '$MacFin' IS NULL)
   OR ((oh.Fechtraspaso BETWEEN $Fec_Inic AND $Fec_Fin) OR $Fec_Ini IS NULL OR $Fec_Fin IS NULL)
   OR ((vc.Clie_nombre >= '$Cliein' AND vc.Clie_nombre <= '$Cliefin') OR '$Cliein' IS NULL OR 'Cliefin' IS NULL)
GROUP BY oh.OF_Cod_Cli, oh.OF_Cod_Maq;

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