Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Datos duplicados al hacer consulta SQL

Estas en el tema de Datos duplicados al hacer consulta SQL en el foro de SQL Server en Foros del Web. Hola a todos!! Estoy haciendo una consulta con INNER JOIN pero no se porque razon me duplica los datos :S El resultado que espero es ...
  #1 (permalink)  
Antiguo 13/07/2012, 00:39
Avatar de halexander  
Fecha de Ingreso: abril-2010
Ubicación: En algun lugar de mexico xD
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Datos duplicados al hacer consulta SQL

Hola a todos!!

Estoy haciendo una consulta con INNER JOIN pero no se porque razon me duplica los datos :S

El resultado que espero es el siguiente:

-| ID | Cantidad | Total | Precio
1 | 1 | 13.7 | 13.7
8 | 1 | 31 | 31
22 | 1 | 8 | 8

Hago esta consulta:

SELECT ord.IdProducto, ord.Cantidad, ord.TotalXArticulo, ord.PrecioArticulo
FROM OpRequisicionDetalle ord
INNER JOIN OpRequisicion or1 ON ord.IdRequisicion=or1.IdRequisicion

Y me lanza esto:

IdProducto Cantidad TotalXArticulo PrecioArticulo
----------- ----------- --------------------------------------- ---------------------------------------
1 1 13.7700 13.7700
11 1 252.8500 252.8500
22 1 8.1000 8.1000
43 1 221.6300 221.6300
68 1 110.4500 110.4500
1 1 13.7700 13.7700
8 1 31.0400 31.0400
22 1 8.1000 8.1000
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
15 1 86.1100 86.1100
15 1 86.1100 86.1100
15 1 86.1100 86.1100
15 1 86.1100 86.1100
15 1 86.1100 86.1100
15 1 86.1100 86.1100
15 1 86.1100 86.1100
35 1 46.3300 46.3300
35 1 46.3300 46.3300
35 1 46.3300 46.3300
35 1 46.3300 46.3300
35 1 46.3300 46.3300
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
16 1 136.8100 136.8100
54 1 198.5900 198.5900
79 5 4693.1000 938.6200
8 3 93.1200 31.0400
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
16 1 136.8100 136.8100
54 1 198.5900 198.5900
79 5 4693.1000 938.6200
8 3 93.1200 31.0400
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
1 1 13.7700 13.7700
16 1 136.8100 136.8100
54 1 198.5900 198.5900
79 5 4693.1000 938.6200
8 3 93.1200 31.0400
7 3 204.9000 68.3000
15 3 258.3300 86.1100
30 1 8.1000 8.1000
54 3 595.7700 198.5900
7 3 204.9000 68.3000
15 3 258.3300 86.1100
30 1 8.1000 8.1000
54 3 595.7700 198.5900
7 3 204.9000 68.3000
15 3 258.3300 86.1100
30 1 8.1000 8.1000
54 3 595.7700 198.5900

No comprendo que hago mal =(
  #2 (permalink)  
Antiguo 13/07/2012, 06:06
Avatar de Huasi  
Fecha de Ingreso: mayo-2007
Mensajes: 83
Antigüedad: 17 años, 6 meses
Puntos: 2
Respuesta: Datos duplicados al hacer consulta SQL

Proba asi:

Código:
SELECT DISTINCT ord.IdProducto, ord.Cantidad, ord.TotalXArticulo, ord.PrecioArticulo
FROM OpRequisicionDetalle ord
INNER JOIN OpRequisicion or1 ON or1.IdRequisicion = ord.IdRequisicion
  #3 (permalink)  
Antiguo 13/07/2012, 19:44
Avatar de halexander  
Fecha de Ingreso: abril-2010
Ubicación: En algun lugar de mexico xD
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Datos duplicados al hacer consulta SQL

Cita:
Iniciado por Huasi Ver Mensaje
Proba asi:

Código:
SELECT DISTINCT ord.IdProducto, ord.Cantidad, ord.TotalXArticulo, ord.PrecioArticulo
FROM OpRequisicionDetalle ord
INNER JOIN OpRequisicion or1 ON or1.IdRequisicion = ord.IdRequisicion
Fuiste el unico en contestar xD gracias!! Ya habia probado algo asi, pero me lanzaba lo mismo, lo solucione pasandole un valor por parametro como entero, en esta linea:

ON or1.IdRequisicion = ord.IdRequisicion, la sustitui por:

ON or1.IdRequisicion = @IdRequisicion

y la variable "@IdRequisicion" trae un entero, osease un numero de ID

Gracias!! =)
  #4 (permalink)  
Antiguo 15/07/2012, 01:27
 
Fecha de Ingreso: julio-2012
Ubicación: Israel
Mensajes: 360
Antigüedad: 12 años, 5 meses
Puntos: 40
Respuesta: Datos duplicados al hacer consulta SQL

La utilización del operador Distinct - como te sugirio Huasi - te eliminara probablemente los registros duplicados, pero sospecho que la duplicación es la resulta de la falta de otra condición en la clausula On (despues el Join).

Estas seguro que solamente la columna IdRequisicion debe coincidir filas de las dos tablas?
__________________
El Castellano no es mi lengua materna: discúlpenme por los errores gramaticales.
Mi blog

Etiquetas: duplicar, inner-join, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:08.