Consulta SQL

21/07/2008 - 08:26 por Telerín | Informe spam
Hola a todos.

Tengo una BDD con 2 tablas: Tabla1 y Tabla2

Tabla1:

codigo telefono1 nombre1
1 11111 aaa
2 22222 bbb
3 33333 ccc

Tabla2:

codigo telefono2 orden
1 77777 3
1 66666 2
2 99999 1
2 88888 2
3 00000 2
3 55555 1

Lo que pretendo es hacer una consulta para sincronizar en el registro cuyo
ORDEN sea menor en la Tabla2 el telefono de la Tabla1, o sea, obtener el
siguiente resultado en la consulta:

codigo telefono2 orden
1 66666 2
2 99999 1
3 55555 1

He probado lo siguiente, pero no funciona:

SELECT Tabla1.codigo, Min(Tabla2.orden) AS MínDeorden, Tabla2.telefono2
FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.codigo = Tabla2.codigo
GROUP BY Tabla1.codigo, Tabla2.telefono2

¿Alguna idea? Gracias.
 

Leer las respuestas

#1 Ricardo Junquera
21/07/2008 - 09:30 | Informe spam
Hola

Que te parece primero hacer una consulta para obtener el codigo y el orden
de los datos que te interesan, lo que tienes pero sin el telefono, ya que eso
hace que se repitan los datos

SELECT Tabla1.codigo, Min(Tabla2.orden) AS MínDeorden
FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.codigo = Tabla2.codigo
GROUP BY Tabla1.codigo



Y esta resultado lo usas como subselect para obtener lo que pides

Select codigo, telefono2, orden from TABLA2 t2
inner join (SELECT Tabla1.codigo, Min(Tabla2.orden) AS MínDeorden
FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.codigo = Tabla2.codigo
GROUP BY Tabla1.codigo) aux


on t2.codigo=aux.codigo and t2.orden=aux.orden





Ricardo Junquera
Consultor Business Intelligence

BG&S Online Consultores
Ganadora del Premio Microsoft Business Awards 2008.
Partner de Soluciones : Satisfacción de Cliente.



"Telerín" wrote:

Hola a todos.

Tengo una BDD con 2 tablas: Tabla1 y Tabla2

Tabla1:

codigo telefono1 nombre1
1 11111 aaa
2 22222 bbb
3 33333 ccc

Tabla2:

codigo telefono2 orden
1 77777 3
1 66666 2
2 99999 1
2 88888 2
3 00000 2
3 55555 1

Lo que pretendo es hacer una consulta para sincronizar en el registro cuyo
ORDEN sea menor en la Tabla2 el telefono de la Tabla1, o sea, obtener el
siguiente resultado en la consulta:

codigo telefono2 orden
1 66666 2
2 99999 1
3 55555 1

He probado lo siguiente, pero no funciona:

SELECT Tabla1.codigo, Min(Tabla2.orden) AS MínDeorden, Tabla2.telefono2
FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.codigo = Tabla2.codigo
GROUP BY Tabla1.codigo, Tabla2.telefono2

¿Alguna idea? Gracias.










Preguntas similares