Título: Duda con Procedure en SQL Server Publicado por: raintrooper en 28 Octubre 2016, 05:20 am Buenas noches, gracias por su acostumbrada ayuda. Tengo un procedure en Sql Server el cual seria el siguiente:
USE [] GO /****** Object: StoredProcedure [dbo].[stp_Reporte_Facturado_BLs] Script Date: 10/27/2016 9:13:22 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- ============================================= ALTER PROCEDURE [dbo].[stp_Reporte_Facturado_BLs] --@FechaDesde varchar(max), @FechaHasta varchar(max), @CodManifiesto int @CodManifiesto VARCHAR(max), @CodBl VARCHAR(max) --@EstadoFactura varchar(max) AS BEGIN DECLARE @cols AS varchar(MAX),@query AS varchar(MAX), @EstadoFactura as varchar(max); SET @EstadoFactura = 'V'; SET @cols = STUFF( ( SELECT DISTINCT '],[' + CAST(CodigoTipoCargoLocal AS varchar(3)) FROM Ct_C_CargosLocalesTipos FOR XML PATH('') ) ,1,2,'' )+']' SET @query = ' SELECT CodManifiesto, CodBL, NombreTransporte NumViaje, NumBL, IDEquipo , '+@cols+' FROM ( SELECT b.CodManifiesto, b.CodBL, NombreTransporte, NumViaje, NumBL , IDEquipo, NumPDF, f.Total, TipoCargoLocal FROM M_BLs b INNER JOIN M_Manifiestos man on b.CodManifiesto = man.CodManifiesto INNER JOIN M_CargosLocales mc on b.CodBL = mc.CodBL LEFT JOIN V_EquiposBL veq on mc.CodEquipo = veq.CodEquipo LEFT JOIN Ct_FacturasDetalles fd on mc.CodCargoLocal = fd.CodCargoLocal LEFT JOIN Ct_Facturas f on f.CodFactura = fd.CodFactura LEFT JOIN Ct_RecibosDetalles rd on fd.CodDetalleFactura = rd.CodDetalleFactura LEFT JOIN Ct_Recibos r on r.CodRecibo = rd.CodRecibo WHERE b.codmanifiesto = '+@CodManifiesto+' AND NumBL = '''+@CodBl+''' ) AS TP PIVOT ( MAX(NumPDF) for TipoCargoLocal IN ('+@cols+') )ptable ' --GROUP BY NumBL, '+@cols+',NombreTransporte, NumViaje' execute(@query) END En este procedure a como esta ahorita, a la fuerza le debo enviar los datos de @codmanifiesto y @codbl. El problema viene en que ese @codbl hay casos en los que si llegara y casos en que no. Para esto necesitaria un if o un case, pero no tengo idea de como utilizarlo, para que siempre funcione con el @codmanifiesto y en algunos casos con @codbl. Alguien podria ayudarme con esto por favor? Gracias. Título: Re: Duda con Procedure en SQL Server Publicado por: Shell Root en 31 Octubre 2016, 15:25 pm Por ejemplo,
Código
|