Paso de parámetros con null - SQL Server

Hola Compañeros!

Feliz día de Reyes ! y Año nuevo!

Les platico mi situación, estoy generando un query, en el cuál, debo pedir como parámetros los siguientes campos:

  • Rango de fechas
  • Serie
  • Vendedor

Como campo obligatorio deben indicar las fechas y la serie, pero el vendedor puede ser opcional. Por lo tanto acudo a ustedes, ya que no sé cómo puedo hacer para que si no ingresa información en el campo de vendedor me arroje “por default” todos los vendedores, y si me indica uno, mostrar sólo lo correspondiente a ese vendedor.

Les muestro mi query, y espero me puedan apoyar u orientar un poco sobre el tema.

SELECT CASE T0.ObjType 
WHEN 13 THEN 'FACTURA'
END 'Documento', T7.SeriesName 'Serie',  ' ' 'Aplica a', T1.SlpName '¿Quién vendió?',   T0.CardCode 'Código Cliente', T0.CardName 'Cliente', T0.[LicTradNum] 'RFC Cliente',    

T0.DocNum 'Folio', FORMAT(T0.DocDate, 'yyyy-MM-dd') 'Fecha',  T2.ItemCode 'Código Artículo', T3.ItemName 'Descripción', 
T4.ItmsGrpNam 'Grupo', T5.FirmName 'Fabricante', 
CASE T0.CANCELED 
WHEN 'C' THEN  '-' + CONVERT(VARCHAR(20), T2.Quantity)
WHEN 'N' THEN T2.Quantity
WHEN 'Y' THEN T2.Quantity
END  'Cantidad', 
CASE T0.CANCELED
WHEN 'C' THEN '-' + CONVERT(VARCHAR(20), T2.LineTotal)
WHEN 'N' THEN T2.LineTotal
WHEN 'Y' THEN T2.LineTotal
END  'Total',
CASE T0.CANCELED
WHEN 'C' THEN '-' + CONVERT(VARCHAR(20),  (T2.StockPrice * T2.Quantity))
WHEN 'N' THEN (T2.StockPrice * T2.Quantity)
WHEN 'Y' THEN (T2.StockPrice * T2.Quantity)
END 'Costo'
FROM OINV T0 
INNER JOIN OSLP T1 ON T0.SlpCode=T1.SlpCode
INNER JOIN INV1 T2 ON T0.DocEntry=T2.DocEntry
INNER JOIN OITM T3 ON T2.ItemCode=T3.ItemCode
INNER JOIN OITB T4 ON T3.ItmsGrpCod=T4.ItmsGrpCod
INNER JOIN OMRC T5 ON T5.FirmCode=T3.FirmCode
INNER JOIN NNM1 T7 ON T0.Series=T7.Series
WHERE T0.DocDate >= '[%0]' AND T0.DocDate <= '[%1]' AND T1.SlpName = '[%2]' AND T7.SeriesName = '[%3]' 

Saludos

1 me gusta

podrías usar el isnull
Por ejemplo
Si yo tengo el primer campo nulo mostrara el segundo campo.

Select isnull(docdate, docduedate) as Fecha from oinv where docentry=1000

podrías ahí agregar la subconsulta con el case

Saludos yo también radico aquí en SLP

1 me gusta

Gracias! Lo voy a intentar y te platico el resultado!
:slight_smile:

1 me gusta

Este tema se cerró automáticamente 91 días después de la última publicación. No se permiten nuevas respuestas.