25/06/2008, 10:08
|
| | Fecha de Ingreso: junio-2008
Mensajes: 2
Antigüedad: 16 años, 6 meses Puntos: 0 | |
Respuesta: Una SELECT para nota. Vale, me pongo un 10 a mi mismo.
Usando una join normal y sin subselect
SELECT DISTINCT KH.KnowHowID,
KH.AddedBy,
KH.AddedDate,
KH.AddedByIP,
KH.ModifiedBy,
KH.ModifiedDate,
KH.ModifiedByIP,
KH.Title,
KH.Text,
KH.CategoryID,
Cat.Title AS CategoryTitle
FROM DHLKB_KnowHow KH,
DHLKB_Categories Cat,
DHLKB_KnowHow_Shares KHS,
DHLKB_UserWorkGroups UWG
WHERE KH.CategoryID = Cat.CategoryID AND
KH.KnowHowID = KHS.KnowHowID AND
LOWER(UWG.UserName) = LOWER(@UserName) AND
KHS.WorkGroupID = UWG.WorkGroupID AND
Cat.CategoryID = @CategoryID
Esto sin Distinct me devuelve filas como
KnowHowID Titulo Bla bla Compartido con...
1 Titulo1 21
1 Titulo1 22
2 Titulo2 22
3 Titulo3 21
3 Titulo3 23
El usuario esta en los grupos 21,22 y 23
El conocimiento 1 está compartido con los grupos 21,22 y 25, pero como coinciden 2, pues pongo 2 registros...aunque sean iguales
El conociemiento 2 esta compartido con los grupos 22 y 47...como coincide con el 22, pues pongo 1 registro
El conocimiento 3 está compartido con los grupos 12 y 23....como coinciden 2 grupos, los pongo
No se que os parece...teniendo en cuenta que el texto es un campo NVARCHAR(MAX) y puede tener que hacer comparaciones muy largas consigo mismo. |