SQL - Unir dos tablas en una y que no repita registros

 
Vista:
sin imagen de perfil

Unir dos tablas en una y que no repita registros

Publicado por Alex (4 intervenciones) el 05/05/2017 12:51:27
Buenos dias, estoy intentando unir dos tablas en una pero al hacerlo con un inner join me repito registros.

¿Como puedo hacer para que no me repita registros?


Sin-titulo
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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Unir dos tablas en una y que no repita registros

Publicado por xve (284 intervenciones) el 05/05/2017 16:29:10
Hola Alex, como haces el JOIN, por que campos?
Que campos no se tendrían que repetir?
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
sin imagen de perfil

Unir dos tablas en una y que no repita registros

Publicado por Alex (4 intervenciones) el 05/05/2017 21:32:57
Hago el Join con el codigo de empresa.

El problema es que para cada pedido me muestra las veces que hay de albaran, es decir, me gustaria que solo mostrara 8 lineas al juntar las dos tablas.

Gracias, 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
Imágen de perfil de xve
Val: 135
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Unir dos tablas en una y que no repita registros

Publicado por xve (284 intervenciones) el 07/05/2017 08:27:00
Puedes hacer un group by nAlbaran, pero ten en cuenta que el importe que te de devuelva en cada linea puede ser cualquier de ellos.
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
sin imagen de perfil

Unir dos tablas en una y que no repita registros

Publicado por Alex (4 intervenciones) el 08/05/2017 15:46:44
Esta era la consulta sin el group by que comentas:
1
2
3
4
SELECT     NumeroAlbaran, CabeceraAlbaranCliente.BaseImponible, CabeceraAlbaranCliente.CodigoEmpresa,
           NumeroPedido, CabeceraPedidoCliente.BaseImponible, CabeceraPedidoCliente.CodigoEmpresa
FROM         CabeceraAlbaranCliente INNER JOIN CabeceraPedidoCliente ON CabeceraAlbaranCliente.CodigoEmpresa = CabeceraPedidoCliente.CodigoEmpresa
WHERE     (CabeceraAlbaranCliente.CodigoEmpresa = 12) AND (EjercicioAlbaran = 2017) AND (CabeceraPedidoCliente.CodigoEmpresa = 12) AND (EjercicioPedido = 2017)

Y lo que hace la consulta es si tengo 10 albaran y 10 pedidos me muestra 10 x 10 = 100 filas.

Al meterle el group by te refieres asi:
1
2
3
4
5
6
7
8
9
10
SELECT     NumeroAlbaran, CabeceraAlbaranCliente.BaseImponible, CabeceraAlbaranCliente.CodigoEmpresa,
                      NumeroPedido, dbo.CabeceraPedidoCliente.BaseImponible AS BaseImponibleP,
                      CabeceraPedidoCliente.CodigoEmpresa AS codempresa
FROM         CabeceraAlbaranCliente INNER JOIN
                      CabeceraPedidoCliente ON CabeceraAlbaranCliente.CodigoEmpresa = CabeceraPedidoCliente.CodigoEmpresa
WHERE     (CabeceraAlbaranCliente.CodigoEmpresa = 12) AND (CabeceraAlbaranCliente.EjercicioAlbaran = 2017) AND (CabeceraPedidoCliente.CodigoEmpresa = 12)
                      AND (CabeceraPedidoCliente.EjercicioPedido = 2017)
GROUP BY NumeroAlbaran, CabeceraAlbaranCliente.BaseImponible, CabeceraAlbaranCliente.CodigoEmpresa,
                      NumeroPedido, CabeceraPedidoCliente.BaseImponible, CabeceraPedidoCliente.CodigoEmpresa,
                      CabeceraPedidoCliente.EjercicioPedido

Me sucede lo mismo.

Quiza se pueda hacer de otra forma. Lo que necisito es unir las dos tablas para luego usarlas para otra cosa. Pero con un union all no me vale ya que luego la lectura me falla (por la forma de leerlas)
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

Unir dos tablas en una y que no repita registros

Publicado por Yom V.l. (1 intervención) el 25/01/2024 20:12:45
select nombre, nss
from tabla1
where fecha_baja = null
Union
select nombre,nss
from tabla2
where fecha_alta is not null
group by nombre

el group by nombre solo regresa un registro de dos tablas con el union
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Unir dos tablas en una y que no repita registros

Publicado por Isaias (1921 intervenciones) el 05/05/2017 17:24:10
Aparte de lo que pide XVE, la pregunta de siempre, ¿En que motor de base de datos?
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
sin imagen de perfil

Unir dos tablas en una y que no repita registros

Publicado por Alex (4 intervenciones) el 05/05/2017 21:33:10
SQL Server
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
Imágen de perfil de Isaias
Val: 2.542
Oro
Ha mantenido su posición en SQL (en relación al último mes)
Gráfica de SQL

Unir dos tablas en una y que no repita registros

Publicado por Isaias (1921 intervenciones) el 06/05/2017 00:45:13
De acuerdo, ahora esperamos la respuesta a XVE
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