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/> 
------------------------------------------- 

 

Responder a