Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/06/2014, 07:54
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: no repetidos y repetidos de mayor fecha

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. codigo INT,
  4. fecha datetime,
  5. precio INT,
  6. unidades INT
  7. )
  8.  
  9. INSERT INTO #temp VALUES (1,getdate(),100,1)
  10. INSERT INTO #temp VALUES (2,getdate(),100,1)
  11. INSERT INTO #temp VALUES (3,NULL,100,1)
  12. INSERT INTO #temp VALUES (4,NULL,100,1)
  13. INSERT INTO #temp VALUES (5,getdate()+1,100,1)
  14. INSERT INTO #temp VALUES (5,getdate(),100,1)
  15. INSERT INTO #temp VALUES (6,getdate(),100,1)
  16. INSERT INTO #temp VALUES (6,getdate()+2,100,1)
  17.  
  18. SELECT COUNT(codigo) total, codigo,fecha,precio,unidades FROM #temp WHERE fecha IS NULL GROUP BY codigo,fecha,precio,unidades HAVING COUNT(codigo)=1
  19.  
  20.  
  21. SELECT t1.* FROM(
  22. SELECT * FROM #temp WHERE codigo IN(
  23. SELECT codigo FROM(
  24. SELECT COUNT(codigo) AS total, codigo FROM #temp GROUP BY codigo HAVING COUNT(codigo)>1
  25. ) AS TABLE)
  26. ) t1
  27. LEFT JOIN (SELECT MAX(fecha) AS m_fecha, codigo FROM #temp GROUP BY codigo) AS t2 ON (t1.codigo=t2.codigo AND t1.fecha=t2.m_fecha)
  28. WHERE t2.m_fecha IS NOT NULL

usando algunos datos de ejemplo y la estructura que mencionas podria quedar algo como esto :P
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me

Última edición por Libras; 05/06/2014 a las 07:59