"Hendrik Hansen" <hcwh@yahoo.com> wrote in message
news:KjXh6.51831$zw.907564@twister.sunsite.dk...
>
>
> Personligt ville jeg bruge en temp-tabel og så selecte den oftest
> forekommende fra hver kolonne ind hvert felt i temptabellen:
>
Jeg lavede en SQL ting i går eftermiddags
Der var lige den ekstra finte at man går ind og vælger et antal poster, der
skal opdateres med én bestemt værdi for hver attribut - hvordan jeg undgår
at lave rod i resten af attributterne (hvis det fx kun er én attribut der
skal ændres) bliver et lille studium værd
---------------------------------------------------------------
CREATE PROCEDURE sp_GetMostUsed (
@Users NVarChar(1000)
)
AS
DECLARE @SQL NVarChar(2000)
SET NOCOUNT ON
SET @SQL = N'SELECT * INTO #Some FROM MyTable WHERE ID IN (' + @IDS+ ') '
SET @SQL = @SQL + N'SELECT * INTO #MostUsed FROM MyTable Where 1=2 '
SET @SQL = @SQL + N'INSERT INTO #MostUsed (ID) Values (''Temp'') '
SET @SQL = @SQL + N'UPDATE #MostUsed SET A = (SELECT TOP 1 A FROM #Some
GROUP BY A Order BY COUNT(*) DESC) '
SET @SQL = @SQL + N'UPDATE #MostUsed SET B = (SELECT TOP 1 B FROM #Some
GROUP BY B Order BY COUNT(*) DESC) '
-- osv
SET @SQL = @SQL + N'SELECT * FROM #MostUsed '
SET @SQL = @SQL + N'DROP TABLE #Some '
SET @SQL = @SQL + N'DROP TABLE #MostUsed'
EXECUTE sp_EXECUTESQL @SQL
SET NOCOUNT OFF
---------------------------------------------------------------
mvh/Peter Lykkegaard