Tendrias algun ejemplito ?, como para orientarme Desde ya gracias
Saludos Julián R Berlín ________________________________ From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Diego Jancic Sent: Lunes, 05 de Febrero de 2007 11:44 a.m. To: Julian Berlin Subject: [dbms] filtrar por rango... Hola, Yo use SQL dinamico para eso por el tema del sort, pero para el resto de las cosas no es necesario... Salu2 On 2/5/07, Maxi Accotto <[EMAIL PROTECTED]> wrote: Hola, no veo la necesidad de crear consultas dinamicas para esto, si es varchar solo pones where campo > param and campo < param. Con respecto al sql dinamico: http://www.hayes.ch/ sql/sql_dinamico.html <http://www.hayes.ch/sql/sql_dinamico.html> 2007/2/4, The Developer <[EMAIL PROTECTED]>: Hola Gente Estoy teniendo problemas al hacer un SP que filtra por rangos de codigo el problema en cuestion es que tengo una tabla cuyas claves son alfanumericas ( Varchars )y tengo que filtrar por rangos (por ejemplo todos aquellos proveedores que esten entre "pro0001" y "pro0023" ) La consulta la creo dinamicamente , al parecer el problema esta en que cuando le paso los parametros no me los toma como varchar sino como un simbolo cualquiera me tira errores del estilo: Mens. 207, Nivel 16, Estado 1, Línea 17 Invalid column name 'pro00001'. Mens. 207, Nivel 16, Estado 1, Línea 17 Invalid column name 'pro00003'. LA consulta la armo de la siguiente manera: ALTER PROCEDURE [dbo].[ReporteListadoProveedores] ( @CodigoDesde varchar(10) , @CodigoHasta varchar(10) , @SortBy int ) AS --obtener los parametros y armar e ejecutar la query de acuerdo a ello Declare @SQLQuery VarChar(8000 ) Declare @from VarChar(1000 ) Declare @Where VarChar(1000 ) Declare @Sort VarChar(1000 ) set @Where = '' set @Sort = '' --para probarlo --exec ReporteListadoProveedores @CodigoDesde = '1' , @CodigoHasta = '1' , @SortBy = 2 select @from ='SELECT Proveedor.ProveedorCodigo AS cod_proveedor ,Proveedor.ProveedorRazonSocial AS razon_social ,Localidad.LocalidadNombre AS localidad ,Provincia.ProvinciaNombre AS provincia ,1223 AS cod_postal ,Proveedor.ProveedorTelefono AS telefono ,Domicilio.DomicilioFax AS tel_fax ,CategoriaIva.CategoriaIvaCodigo AS cod_iva ,CategoriaIva.CategoriaIvaDescripcion AS desc_iva ,Proveedor.ProveedorCUIT AS cuit FROM Proveedor LEFT OUTER JOIN Domicilio ON Proveedor.DomicilioId = Domicilio.DomicilioId LEFT OUTER JOIN Localidad ON Domicilio.LocalidadId = localidad.LocalidadId LEFT OUTER JOIN Provincia ON localidad.ProvinciaID = Provincia.ProvinciaID LEFT OUTER JOIN CategoriaIva ON Proveedor.CategoriaIvaId = CategoriaIva.CategoriaIvaID' --setear la condicion del where IF @CodigoDesde <> '0' BEGIN --Print 'entro 1' IF @CodigoHasta IS NOT NULL BEGIN --Print 'entro 2' select @Where = ' WHERE Proveedor.ProveedorCodigo BETWEEN ' + 'CAST('[EMAIL PROTECTED] +' AS varchar(10))' + ' AND ' + 'CAST('[EMAIL PROTECTED] + 'AS varchar(10)) ' END END --setear el orden IF @SortBy = 1 BEGIN Select @Sort = ' ORDER BY Proveedor.ProveedorCodigo DESC' END ELSE BEGIN Select @Sort = ' ORDER BY Proveedor.ProveedorRazonSocial DESC' END --TODO --falta el codigo postal en la tabla domicilio y ponerlo para que se arme bien en la consulta --armar la consulta select @SQLQuery = @from + @Where + @Sort --solo para testear Print @SQLQuery --ejecutar la consulta Exec (@SQLQuery) Si alguien alguna ves hizo algo parecido y me puede dar una mano lo agradecere ! Desda ya gracias ! Saludos Julian -- ---------------------------------------------------- Microsoft MVP en SQL Server SQLTotalConsulting - Servicios & proyectos en SQLServer Orador Culminis - Microsoft Influencier www.sqlgurus.org <http://www.sqlgurus.org/> -------------------------------------------
