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

Problema con subconsulta

Estas en el tema de Problema con subconsulta en el foro de SQL Server en Foros del Web. Hola a todos, tengo una duda que me está atormentando con una consula SQL, llevo varios días sin una solución, tengo una tabla más o ...
  #1 (permalink)  
Antiguo 03/07/2013, 15:47
 
Fecha de Ingreso: enero-2012
Mensajes: 3
Antigüedad: 12 años, 2 meses
Puntos: 0
Problema con subconsulta

Hola a todos, tengo una duda que me está atormentando con una consula SQL, llevo varios días sin una solución,
tengo una tabla más o menos así:

Código:
+------+------+------+
|A     |B     |C     |
+------+------+------+
|897   |0     |4     |
|453   |0     |5     |
|897   |0     |5     |
+------+------+------+
y dos variables:

Código:
var1=5
var2=0
Lo primero que quiero hacer es sacar todos los registros donde A=897, eso lo hago simplemente con esto:

Código:
SELECT * FROM tabla WHERE A=897
y me devuelve estos registros:

Código:
+------+------+------+
|A     |B     |C     |
+------+------+------+
|897   |0     |4     |
|897   |0     |5     |
+------+------+------+
lo cual está bien, pero quiero hacer que sobre los resultados de esa consulta, que seleccione solo los registros cuando C=var1 o C=var2, pero no me devuelve los resultados esperados, primero probé con:

Código:
SELECT * FROM tabla WHERE A=897 AND (C=var1 OR C=Var2)
pero me devuelve los mismos dos registros, como si no estuviera la segunda condición que agregué:

Código:
+------+------+------+
|A     |B     |C     |
+------+------+------+
|897   |0     |4     |
|897   |0     |5     |
+------+------+------+
Probé tambien con:

Código:
SELECT * FROM tabla WHERE A=897 AND C=var1 AND C=Var2
pero evidentemente está no me devuelve ningún resultado:

Código:
+------+------+------+
|A     |B     |C     |
+------+------+------+
+------+------+------+

Alguien me podría orientar un poco sobre como resolver este problema? Gracias :)
  #2 (permalink)  
Antiguo 03/07/2013, 16:00
 
Fecha de Ingreso: noviembre-2011
Mensajes: 48
Antigüedad: 12 años, 4 meses
Puntos: 5
Respuesta: Problema con subconsulta

Revisa tus tipos de datos de tu tabla y las variables que declaras, ya que realice el ejercicio y funciona bien con la condición OR

Código SQL:
Ver original
  1. CREATE TABLE #temp1
  2. ( a INT, b INT , c INT);
  3.  
  4. INSERT INTO #temp1 VALUES (897,0,4)
  5. INSERT INTO #temp1 VALUES (453,0,5)
  6. INSERT INTO #temp1 VALUES (897,0,5)
  7.  
  8. DECLARE @var1 INT
  9. DECLARE @var2 INT
  10.  
  11. SET @var1 = 0
  12. SET @var2 = 5
  13.  
  14. SELECT * FROM #temp1 WHERE a = 897 AND (c = @var1 OR c = @var2)

Resultado:
897 0 5

Etiquetas: registro, select, sql, subconsulta, tabla
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 14:33.