Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-06-2008
santiaguinillo santiaguinillo is offline
Miembro
 
Registrado: abr 2007
Ubicación: Viladecans, Barcelona
Posts: 24
Poder: 0
santiaguinillo Va por buen camino
Join de 2 tablas y mostrar el primer resultado de la tabla 2

Hola,

es un poco complejo explicar la duda que tengo.

Quiero hacer una join de 2 tablas: TABLA_A y TABLA_B
Para un registro de TABLA_A puede relacionarse con varios de la TABLA_B de forma que quedaría un posible resultado:

REG1_TABLA_A - REG1_TABLA_B
REG1_TABLA_A - REG2_TABLA_B
REG1_TABLA_A - REG3_TABLA_B

REG2_TABLA_A - REG4_TABLA_B
REG2_TABLA_A - REG5_TABLA_B
REG2_TABLA_A - REG6_TABLA_B

REG3_TABLA_A - REG7_TABLA_B

Quisiera sacar la query para que me muestre sólo el primer resultado de la TABLA_B con la TABLA_A de forma que el resultado quede:

REG1_TABLA_A - REG1_TABLA_B
REG2_TABLA_A - REG4_TABLA_B
REG3_TABLA_A - REG7_TABLA_B

es decir que saque el max de la TABLA_B en cada grupo.

¿Qué he probado?
hacer un group by del ID de la TABLA_A
first
max

no sé que más probar.

Última edición por santiaguinillo fecha: 20-06-2008 a las 09:50:44.
Responder Con Cita
  #2  
Antiguo 20-06-2008
Avatar de Ivanzinho
[Ivanzinho] Ivanzinho is offline
Miembro Premium
 
Registrado: ene 2005
Ubicación: Galicia
Posts: 595
Poder: 20
Ivanzinho Va por buen camino
Podrías hacer lo siguiente :

Código SQL [-]
Select TA.Campo, max(TB.Campo)
from TablaA TA inner join TablaB TB
     on TA.idA = TB.idA
group by TA.Campo

Un saúdo.
__________________
Si no lees esto no vivirás tranquilo
Non lle poñades chatas â obra namentras non se remata. O que pense que vai mal que traballe n’ela; hai sitio para todos. (Castelao)
Responder Con Cita
  #3  
Antiguo 20-06-2008
santiaguinillo santiaguinillo is offline
Miembro
 
Registrado: abr 2007
Ubicación: Viladecans, Barcelona
Posts: 24
Poder: 0
santiaguinillo Va por buen camino
Hola Ivanzinho,

me ha ido bien esta query. Jo, lo sencilla que parece... eso demuestra que me falta nivel en SQL

Un saludo y gracias!!
Responder Con Cita
  #4  
Antiguo 01-07-2008
santiaguinillo santiaguinillo is offline
Miembro
 
Registrado: abr 2007
Ubicación: Viladecans, Barcelona
Posts: 24
Poder: 0
santiaguinillo Va por buen camino
Question Duda para más campos

Hola Ivanzinho,

se me ha presentado otro problema:

si ahora quiero añadir TB.Campo2 en la select, por ejemplo:
Código SQL [-]
Select TA.Campo, max(TB.Campo),TB.Campo2
from TablaA TA inner join TablaB TB
     on TA.idA = TB.idA
group by TA.Campo,TB.Campo2

y Campo2 es diferente en todas las lineas, me vuelve a sacar todas los registros sin sacarme unicamente el max de TB.Campo. Por lo tanto, vuelve a sacarme:

REG1_TABLA_A - REG1_TABLA_B
REG1_TABLA_A - REG2_TABLA_B
REG1_TABLA_A - REG3_TABLA_B

¿Qué condición tengo que poner para que me coja sólo el primer max(TB.Campo) independientemente si TB.Campo2 es diferente en todas las lineas o no?

Cita:
Empezado por Ivanzinho Ver Mensaje
Podrías hacer lo siguiente :

Código SQL [-]Select TA.Campo, max(TB.Campo) from TablaA TA inner join TablaB TB on TA.idA = TB.idA group by TA.Campo


Un saúdo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como mostrar en primer plano Blackspike API de Windows 4 14-01-2008 09:13:20
Sacar el primer resultado de una consulta con varios VRO Firebird e Interbase 5 04-05-2007 16:23:14
Join de dos tablas, incluso si en la segunda tabla no existe gluglu SQL 5 14-06-2006 17:57:55
insertar el resultado de full join ddd_ddd SQL 2 22-09-2005 06:59:46
Como mostrar el primer elemento de un DBLookupComboBox?? Carmen OOP 3 04-11-2004 20:37:16


La franja horaria es GMT +2. Ahora son las 05:12:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi