30. november 2007 - 14:41Der er
8 kommentarer og 1 løsning
Problem med gennemløb af tabeller
Hej eksperter!
Jeg står med en rigtig grimmert af et problem.
Vil lave en funktion som tager tabelnavnet som parameter og så returnerer TOP 5 resulater fra den givne tabel.
Funktionen vil blive kaldt i et gennemløb af en tabel som har en masse tabelnavne hvor de 5 sidste altså skal returneres.
Herefter skal resultaterne så ligges i en ny tabel så dataene kommer til at ligge sådan her: Tablenavn : Value Tabel1 : 5.5 Tabel1 : 5.6 Tabel1 : 5.3 Tabel1 : 5.8 Tabel1 : 4.9 Tabel2 : 5.5 Tabel2 : 5.6 Tabel2 : 5.3 Tabel2 : 5.8 Tabel2 : 4.9 osv.
Funktionen jeg har prøvet at lave ser sådan ud:
CREATE FUNCTION dbo.ufn_getLatest5 ( @TableName NVARCHAR(100) ) RETURNS TABLE AS RETURN ( SELECT TOP 5 * FROM @TableName WHERE [Fat X] IS NOT NULL ORDER BY [Date] DESC ) GO
Det kan naturligvis ikke lade sig gøre.... Men hvis nogle har et eller andet forslag til (måske endda bare pseudo kode) hvordan man kan løse det her så er i meget velkomne.
problemet er her Arne at jeg arbejder med nogle SAP rapporteringsværktøjer hvor det ikke er muligt at manipulere med dataene på applikationsniveau. Kan ikke anvende et eneste serverside sprog. Får dataene ud i et javaapplet baseret på den query jeg sender med.
Jeg har leget med Exec og har ikke kunnet få det til at virke.
Hvis du har tid vil jeg være meget taknemmligt for et eksempel hvis du kunne give et.
Mit absolutte slutresultat er at jeg for hver tabel skal have den range de 5 værdier strækker sig over, altså største værdi minus mindste af de fem sidste.
og et andet sted skal jeg have middelværdien af de 5 sidste værdier fra hver tabel.
Det er noget rigtigt hø. Databasen er til noget der hedder QI Analyst hvis du kender det og rapporteringsværktøjet er xMII fra MySap
undskyld jeg ikke lige fik svaret... Ja det er samme eller i hvert fald så tæt på at være at variationen kan tages højde for på en anden måde.
Jeg løste problemet igår eftermiddag efter at have brugt i alt 10 timer på det her ellers ret simple problem.
Det endte med at jeg lavede en stored procedure der kan returnere range eller meanvalue fra en givet tabels sidste resultatsæt som også viste sig at være varierende.
Herefter har jeg så en stored procedure der løber alle tabellerne igennem og ligger de i en anden temp tabel.
Det blev en lidt kluntet løsning men det eksekvere skam fint så er godt tilfreds.
Ellers tak for hjælpen janus og jer andre.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.