top y distinct

15/06/2009 - 19:38 por Alhambra Eidos Desarrollo | Informe spam
hola a todos,

tengo una consulta en un procedimiento almacenado, como muestro a
continuación, que hace uso de distinct.

Por temas de rendimiento, quisiera utilizar select top 1000, pero con
distinct no he conseguido nada, alguna ayuda ??

Utilizo sql 2005 express con compatibilidad 2000 (sql 2000)

Alguna sugerencia de rendimiento además, o implementar una paginación
efectiva, pero vamos lo importante es unir el select top 1000 con el select
distinct

muchas gracias

ALTER PROCEDURE [dbo].[bck_PA_ObtenerOperacionesPorCriterios]
( @IdEntidad as varchar(2), @WhereFiltro as varchar(4000) )
AS
DECLARE @sql NVARCHAR(4000)

SELECT @sql '
SELECT
distinct ot.CODIGO As NumeroOperacion
, ot.id As IdOperacion
, ot.numeroprestamo As NumeroPrestamo
, ot.FechaCreacion As FechaCreacion

FROM ORDENESDETRABAJO ot
LEFT JOIN EXPEDIENTES exped ON exped.idordentrabajo = ot.id
AND (exped.FECHAFIN = ''40000101'') AND (OT.FECHAFIN = ''40000101'')
AND (exped.notramita=0 OR exped.notramita is null)
LEFT JOIN INTERVINIENTES inter ON inter.idordentrabajo = ot.id and
inter.fechafin = ''4000-01-01''
WHERE
( ot.fechafin = ''40000101''
and (ot.sintramitaprevia = 0 or ot.sinTramitaPrevia is null)
)
IF (@WhereFiltro IS NOT NULL AND @WhereFiltro <> '')
BEGIN
SELECT @sql = @sql + ' ' + @WhereFiltro
END

SELECT @sql = @sql + ' AND ot.codigo like ''OP' + @IdEntidad + '%'''

PRINT @WhereFiltro
PRINT @sql
EXEC (@sql)

http://www.alhambra-eidos.es/web2005/index.html
www.kiquenet.com/churrosoft
http://www.setbb.com/putainformatic...opic.php?p„3
www.trabajobasura.com/solusoft

Preguntas similare

Leer las respuestas

#1 Penta
16/06/2009 - 01:28 | Informe spam
Porque usas el DISTINCT ?? no será que te falta alguno campo cuando
haces el join ??

Saludos.
PENTA.
Respuesta Responder a este mensaje
#2 Alhambra Eidos Desarrollo
16/06/2009 - 08:15 | Informe spam
Porque usas el DISTINCT ?? no será que te falta alguno campo cuando
haces el join ??



Por la estructura de la base de datos que tiene el cliente, en este caso
pueden repetirse ot.CODIGO, y nos tenemos que asegurar que en la aplicación
no recibamos repetidos.

Es posible al fin y al cabo, select top con distinct ??

Gracias.
Respuesta Responder a este mensaje
#3 Carlos Sacristan
16/06/2009 - 09:19 | Informe spam
Es posible, pero DISTINCT se aplica a todos los campos que devuelves en la
SELECT. Si necesitas devolver más campos, tendrás que agrupar por ellos y
aplicar alguna función de agregado a ot.CODIG

Un saludo
-
www.navento.com
Servicios de Localización GPS

http://blogs.solidq.com/ES/ElRincon...fault.aspx

"Alhambra Eidos Desarrollo"
escribió en el mensaje
news:
Porque usas el DISTINCT ?? no será que te falta alguno campo cuando
haces el join ??



Por la estructura de la base de datos que tiene el cliente, en este caso
pueden repetirse ot.CODIGO, y nos tenemos que asegurar que en la
aplicación
no recibamos repetidos.

Es posible al fin y al cabo, select top con distinct ??

Gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida