Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Ejecutar Consulta de acuerdo al valor de variable

Estas en el tema de Ejecutar Consulta de acuerdo al valor de variable en el foro de SQL Server en Foros del Web. Muy buenos dia apreciados Ingenieros tengo la siguiente duda estoy haciendo una consulta en sql server 2008 @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original DECLARE @cliente ...
  #1 (permalink)  
Antiguo 19/07/2013, 16:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 14
Antigüedad: 16 años, 9 meses
Puntos: 0
Ejecutar Consulta de acuerdo al valor de variable

Muy buenos dia apreciados Ingenieros
tengo la siguiente duda estoy haciendo una consulta en sql server 2008
Código SQL:
Ver original
  1. DECLARE @cliente VARCHAR(255)
  2. SET @cliente =(SELECT  DISTINCT CardCode FROM  ODLN WHERE CardCode='CN800161656')
  3. DECLARE  @doc INT
  4. SET @doc= 169
  5.  
  6. IF @cliente='CN800161656'
  7.  SELECT DISTINCT T0.Cardname,
  8.         T0.CardCode 'Codigo' ,
  9.         T0.DocNum 'Documento' ,
  10.         T0.Cardname 'Nombres' ,
  11.         T0.Address2  'Direccion Entrega' ,
  12.         T0.Address  'Direccion Factura' ,
  13.         T0.CreateDate 'Fecha',
  14.         T0.SlpCode   'Vendedor',       
  15.         T0.NumAtCard  'orden compara',
  16.         T1.ItemCode 'Codigo',
  17.         T1.SubCatNum 'PLU',
  18.         SUBSTRING (T1.Dscription,1,26) 'Descripcion' ,             
  19.         T1.Quantity 'Cantidad',
  20.         T2.LicTradNum 'Nit',
  21.         T2.Phone1   'Telefono',
  22.         T2.CntctPrsn  'Contacto 1',
  23.         T3.U_Ter_barras 'Barras Cliente'                       
  24.        
  25.         FROM  ODLN T0 INNER JOIN DLN1 T1
  26.         ON T0.DocEntry=T1.DocEntry
  27.        
  28.         INNER JOIN OCRD T2
  29.         ON T0.CardCode=T2.CardCode
  30.        
  31.         INNER JOIN  OSCN T3
  32.         ON T1.ItemCode=T3.ItemCode             
  33.         AND T0.DocEntry=@doc
  34.         AND  T3.U_Ter_barras IS  NOT NULL    
  35.                
  36.         ELSE               
  37.                    
  38.         SELECT DISTINCT T0.Cardname,
  39.         T0.DocNum   'Documento' ,
  40.         T0.Cardname 'Nombres' ,
  41.         T0.Address2 'Direccion Entrega' ,
  42.         T0.Address  'Direccion Factura' ,
  43.         T0.CreateDate 'Fecha',
  44.         T0.SlpCode   'Vendedor',       
  45.         T0.NumAtCard  'orden compara',
  46.         T1.ItemCode 'Codigo',
  47.         T1.SubCatNum 'PLU',
  48.         SUBSTRING (T1.Dscription,1,26) 'Descripcion' ,             
  49.         T1.Quantity 'Cantidad',
  50.         T2.LicTradNum 'Nit',
  51.         T2.Phone1   'Telefono',
  52.         T2.CntctPrsn  'Contacto 1',
  53.         T3.U_Ter_barras 'Barras Cliente'                       
  54.        
  55.         FROM  ODLN T0 INNER JOIN DLN1 T1
  56.         ON T0.DocEntry=T1.DocEntry
  57.         INNER JOIN OCRD T2
  58.         ON T0.CardCode=T2.CardCode
  59.        
  60.         INNER JOIN  OSCN T3
  61.         ON T1.ItemCode=T3.ItemCode             
  62.        
  63.         AND T0.DocEntry=@doc
  64.         AND  T3.U_Ter_barras IS  NULL

No me arroja errores
pero cuando tiene que ir por el else no lo hace

Última edición por gnzsoloyo; 19/07/2013 a las 17:29
  #2 (permalink)  
Antiguo 19/07/2013, 16:56
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: Ejecutar Consulta de acuerdo al valor de variable

y tu begin y end?
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 19/07/2013, 22:19
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 4 meses
Puntos: 40
Respuesta: Ejecutar Consulta de acuerdo al valor de variable

Este codigo me funciono perfectamente (con @I=1 y Con @I=2):
Código SQL:
Ver original
  1. DECLARE @I INT=1;
  2. IF @I=1
  3.     SELECT * FROM sys.TABLES;
  4. ELSE
  5.     SELECT * FROM sys.views;
Que significa "no lo hace": el Else te devuelve un conjunto vacio? un error? nada?
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Etiquetas: acuerdo, join, select, server, sql, valor, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:45.