SQL - de 2 consultas a una sola

 
Vista:

de 2 consultas a una sola

Publicado por psycowin (3 intervenciones) el 01/07/2013 20:51:31
buen dia amigos les traigo el siguiente problema en el que me he metido,

tengo una tabla llamada

diesel

con los campos: barcos, pcs, pep y fecha.

Necesito en una consulta obtener el campo de embarcacion pero del dia de ayer
y el de equipos y pep del dia de hoy.

algo asi como

select barcos from diesel where fecha=to_date('01/07/13')-1

select pcs, pep from diesel where fecha=to_date('01/07/13')

pero en una sola consulta
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
sin imagen de perfil
Val: 806
Bronce
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

de 2 consultas a una sola

Publicado por leonardo_josue (1173 intervenciones) el 01/07/2013 22:17:33
Hola psycowin:

No me queda claro cómo tienes organizada tu información, ya que manejar dos cosas distintas en una misma tabla me parece que es un error de diseño de BD... no sé como tienes almacenada tu información y qué es lo que esperas de salida, pero aquí hay varias opciones que igual y te pueden servir...

1. Utilizar cláusula OR: esta opción en realidad no distinguiría los dos tipos de registros, pero te regresaría todos aquellos que cumplan con cualquiera de las opciones.

1
2
3
4
5
SELECT barcos, pcs, pep
FROM diesel
WHERE
fecha = to_date('01/07/13') - 1 OR
fecha = to_date('01/07/13')


2. Utilizar UNION: esta opción si distinguiría cada uno de los tipos de registros, pero ambas consultas tendrían que regresar el mismo numero de columnas y ser del mismo tipo... en tu post no mencionas nada acerca de qué tipo de información almacenas en tus tablas, pero la idea podrías ser algo como esto:

1
2
3
SELECT barcos campo1, null campo2 FROM diesel WHERE fecha = to_date('01/07/13') - 1
UNION
SELECT pcs campo1, pep campo2 FROM diesel WHERE fecha = to_date('01/07/13')


En el ejemplo estoy suponiendo que el campo barcos y el campo pcs son del mismo tipo y tienen la misma longitud y para el caso del segundo campo, estoy creando en la primer consulta un campo NULL para poder tener el mismo número de campos en ambas consultas.

Podría haber más opciones, dependen de cómo tienes tu información y qué es lo que quieres regresar. Postea algunos datos de ejemplo y con gusto te ayudamos a buscar alguna otra alternativa si es que ninguna de estas opciones se adecua a lo que quieres hacer.

Saludos
Leo.
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