FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Campos duplicados en resultados
Hola a todos/as:
A ver si alguien me puede echar un cable. Resulta que tengo una tabla en SQL Server donde guardo una serie de resultados al calcular la trazabilidad de un producto. Dicha tabla tiene varios campos, dos de los cuáles son enteros y representan un número de referencia y un número de referencia precedente. Hay registros que tienen los mismos valores para esos campos (con "los mismos" me refiero comparando dos registros, no comparando un campo con otro), pero el registro NO es duplicado (ya que tengo un contador que hace las funciones de clave primaria). Problema: Tengo que sacar como resultados en una consulta aquellos registros que tengan cierto valor en uno de esos campos, pero que NO se duplique con el otro. Para evitar líos, pongo un ejemplo: CLAVE -------- REF --------- REF PRECEDENTE 1---------------2------------1 2---------------2------------1 3---------------3------------1 4---------------4------------3 5---------------5------------4 Yo quiero sacar aquellos resultados cuya referencia precedente sea la número 1. ¿Cuáles me sacaría? 1---2---1 2---2---1 3---3---1 Pero el problema es que los dos primeros están duplicados (en los campos que estoy considerando en esta parte del cálculo), y me interesa que si detecta un resultado que tenga un campo que YA haya salido anteriormente (en este caso el número 2), no me lo saque. No puedo usar DISTINCT porque en realidad los registros completos no se duplican (solo algunos campos en concreto). Tampoco puedo restringir la duplicidad de ese campo, ya que dentro de la base de datos sí debe aparecer todos los registros (aunque repitan ese campo), pero NO en los resultados de la consulta. ¿Alguna sugerencia? Me estoy empezando a calentar la cabeza |
#2
|
||||
|
||||
¿Necesitas sacar los 3 campos en la consulta (clave, ref y ref precedente)?
|
#3
|
|||
|
|||
En realidad necesito sacar todos los campos, pero aplicando ese "filtro" que mencioné para discriminar los que se repitan en cierto campo.
|
#4
|
||||
|
||||
¿Qué índices tienes? ¿Alguno más que el campo clave?
|
#5
|
|||
|
|||
No, ninguno más.
|
#6
|
||||
|
||||
Pues si necesitas sacar todos los campos en una consulta lo único que se me ocurre es que utilices funciones de grupo: max(), sum()... y hagas un group by.
Sino siempre puedes procesarlo por código. Lo ordenas por el campo "ref" y guardas en una variable el último valor procesado. Si el nuevo es igual te saltas esa tupla sino la procesas y guardas el nuevo valor de "ref". |
#7
|
|||
|
|||
mmmhhh... quería evitar hacerlo desde código, pero veo que va a ser la mejor solución.
Gracias |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Campos duplicados :) | francisco260184 | SQL | 2 | 11-04-2007 10:16:33 |
Resultados duplicados en procedimientos | jzginez | Firebird e Interbase | 2 | 09-11-2004 02:35:21 |
Evitar duplicados | hectorin | Conexión con bases de datos | 2 | 29-10-2004 16:37:25 |
Registros duplicados | jgutti | SQL | 1 | 02-03-2004 16:45:47 |
Duplicados | Onti | SQL | 3 | 13-11-2003 11:48:56 |
|