Inner join pero que sólo tome 1 fila de la tabla “hija”

25/11/2004 - 15:25 por CLAUDIO | Informe spam
Necesito hacer una Inner join entre 2 tablas pero que tome SIEMPRE 1 sola
fila de la tabla hija.

Tengo por ejemplo esta query:

select *
from facturas fac
INNER JOIN Movim_facturas mov ON (fac.COD_FACTURA = mov.COD_FACTURA)

El problema que tengo con esta query es que si tengo por ejemplo COD_FACTURA
de la tabla Facturas = 5 y tengo 3 registros en la tabla Movim_facturas con
COD_FACTURA = 5, entonces me devuelve 3 registros cuando yo quiero que me
devuelva sólo 1 (me da igual cual de los 3 me devuelva)

Se puede hacer sin tener que hacer Group by?
Cual es la mejor manera para que me devuelva sólo 1 registro por cada
COD_FACTURA de Factura?

Preguntas similare

Leer las respuestas

#1 Maxi
25/11/2004 - 15:32 | Informe spam
Hola, una forma es un Group by o sino usar TOP 1


Salu2
Maxi


"CLAUDIO" escribió en el mensaje
news:
Mostrar la cita
#2 Javier Loria
25/11/2004 - 16:04 | Informe spam
Hola:
Y a que llamas la primera fila?
En SQL se trabaja con conjuntos NO ordenados de datos, con lo cual
primera y ultima no tienen sentido :(
En todo caso podrias tratar algo como esto:
SELECT Facturas_Fac.COD_FACTURA, MAX(mov.NumLinea)
FROM Facturas_Fac
INNER JOIN Movim_facturas mov
ON (fac.COD_FACTURA = mov.COD_FACTURA)
GROUP BY Facturas_Fac
Saludos,

Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda

"CLAUDIO" wrote in message
news:
Mostrar la cita
COD_FACTURA
Mostrar la cita
con
Mostrar la cita
#3 Tako
25/11/2004 - 16:15 | Informe spam
CLAUDIO wrote:
Mostrar la cita
Otra opción (no se como de buena) es

select *
from facturas_fac inner join (select top 1 * from Movim_facturas mov) as m
on facturas_fac.codFactura = m.cod_factura

Lo único recuerda que SQL no tiene orden si no se lo especificas tu, así
que en la subconsulta tendrás que ordenar para que ser el primero tenga
algún significado.

Mostrar la cita
#4 Maxi
25/11/2004 - 16:28 | Informe spam
Tako, un solo comentario ;) no estas usando subconsultas ahi sino tablas
derivadas :)


Salu2
Maxi


"Tako" escribió en el mensaje
news:
Mostrar la cita
#5 Tako
25/11/2004 - 16:42 | Informe spam
Maxi wrote:
Mostrar la cita
A ver... deja que mire por ahí.

subconsultas...
tablas derivadas...

pues tienes razón, y yo toda la vida llamando a ambos casos
"subconsultas" - al fin y al cabo tienen casi la misma estructura- y resulta
que se llaman de forma diferente :)

Espero que no se me hayan enfadado ni las "subconsultas" ni las "tablas
derivadas" por el error, yo al menos me enfadaría mucho si me llamasen
"orangután" solo por que tenemos una estructura parecida :D

Mostrar la cita
Ads by Google
Search Busqueda sugerida