SQL - Consulta compleja

 
Vista:

Consulta compleja

Publicado por Rey (3 intervenciones) el 27/06/2006 18:53:41
Hola listeros,

quiero saber si se puede y como se hace:

Quiero que un campo de mi tabla defina que valor debe tomar el resultado de una consulta.

(Tabla1)
producto

(Tabla2)
manzanas
peras
piñas

por ejemplo si el campo producto = 'manzanas', entonces que la consulta busque en el campo de manzanas y no en el de peras o piñas.

gracias de antemano

un saludo

Rey
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Consulta compleja

Publicado por Isaías (5072 intervenciones) el 27/06/2006 19:08:28
Preguntas:

¿Tu tabla1 tiene una sola columna que se llama PRODUCTO?

¿Tu tabla2 tiene 3 columnas que se llaman MANZANAS, PERAS y PIÑAS?

La verdad, no se entiende tu posta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta compleja

Publicado por Rey (3 intervenciones) el 27/06/2006 19:53:02
Isaías gracias por responder,

es cierto, mi tabla1 tiene una columna llamada producto y a esta le ingreso el nombre de las columnas de la tabla 2.

La tabla 2 tiene 3 columnas manzanas, peras, piñas

lo que quiero es una consulta que haga esto:

Si tabla1.producto = 'manzanas' regrese el valor de la tabla2 columna manzanas
Si tabla1.producto = 'peras' regrese el valor de la tabla2 columna peras
Si tabla1.producto = 'piñas' regrese el valor de la tabla2 columna piñas

(quiza en las dos tablas me falta una columna "idProducto" para hacer la relación en la consulta)

espero puedas ayudarme.

un saludo

Rey
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta compleja

Publicado por Isaías (5072 intervenciones) el 27/06/2006 21:52:12
Pues si, te hace falta un ID de producto en TABLA2, pero vamos a intentar hacerlo, aunque me parece muy extraño tu modelo de tablas.

--CREATE TABLE TABLE1 (PRODUCTO VARCHAR(50))
--CREATE TABLE TABLE2 (MANZANAS VARCHAR(50), PERAS VARCHAR(50), PINAS VARCHAR(50))
--
--INSERT INTO TABLE1 VALUES('PERAS')
--
--INSERT INTO TABLE2 VALUES('MANZANA1', 'PERA1', 'PINA1')
--INSERT INTO TABLE2 VALUES('MANZANA2', 'PERA2', 'PINA2')
--INSERT INTO TABLE2 VALUES('MANZANA3', 'PERA3', 'PINA3')
--INSERT INTO TABLE2 VALUES('MANZANA4', 'PERA4', 'PINA4')
--INSERT INTO TABLE2 VALUES('MANZANA5', 'PERA5', 'PINA5')
--
--DECLARE @SQLString NVARCHAR(2000)
--SELECT @SQLString = N'SELECT '+ PRODUCTO +' FROM TABLE2'
--FROM TABLE1
--EXECUTE sp_executesql @SQLString
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta compleja

Publicado por Rey (3 intervenciones) el 27/06/2006 22:27:27
Isaías <strong>gracias de nuevo</strong> :-), solo un par de consultas más.

la primera:

Esto puede correrse en Access?

y la segunda:
Tengo dos campos en una tabla , uno es de tipo texto y el otro de tipo numero, ambos contienen los números del 1 al 10.

Al ordenar estas dos columnas, el orden en que se muestran los números es diferente, debido al tipo de campo.

es posible hacer que en una consulta un campo se comporte como si fuera de otro tipo, por ejemplo hacer que un campo de texto se comporte como si fuera uno de número, ó de texto a fecha?.

un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Consulta compleja

Publicado por Isaías (5072 intervenciones) el 28/06/2006 02:03:11
Esto puede correrse en Access?

R= NO, Access por ser un motor de tipo escritorio, no cuenta con todas las ventajas de un motor de base de datos transaccional como SQL SERVER.

Segunda:

Si, haciendo que el campo por el cual se quiere ordenar, siendo texto, se convierta a numerico.

ORDER BY CAST(COLUMNA AS INT)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar