11. januar 2007 - 09:22Der er
9 kommentarer og 1 løsning
max-funktion
Hej
Jeg har en tabel i min db: dato nummer pris1 pris2
Der er records i databasen der har det samme nummer men blot med en forskellig dato.
Jeg gerne vil hente dato, nummer, pris1, pris2 på samtlige numre hvor datoen er den dato der ligger tættest på dagsdato men må ikke ligge fremme i tiden.
Jeg har forsøgt med: SELECT MAX(dato) AS dato, nummer FROM dbo.Priser WHERE (dato <= GETDATE()) GROUP BY nummer
Den finder også de rigtige records jeg vil bare gerne have den til at returnere pris1 og pris2 også, men hvis jeg skriver dem i selecten får jeg en fejl med at der ikke er en group by på pris1, pris2 men det skal der jo heller ikke gerne være...
så giver din group by også de rigtige rækker. Du vil få flere numre og datoer, når du tillader det i din tabel. Hvad skal du bruge pris1 og pris2 til ?
Tabellen indeholder priser i en produktdatabase: - dato er den dato hvorfra prisen er gældende, derfor skal jeg have den højeste dato der ikke er fremme i tiden. - nummer er produktnummeret - pris1 er en indkøbspris - pris2 er en udsalgspris
Hele ideen med det er så at jeg skal have hentet de priser der er gældende for et produktnummer. Det har jeg valgt at gøre på følgende måde: - Den select jeg har i spørgsmålet her er en select der kommer til at ligge i et view. - Jeg vil så efterfølgende lave en select på dette view med et specifikt nummer. - Selecten på viewet skulle gerne returnere pris1 og pris2 der er gældende på det pågældende nummer.
Så der kan nemt være 10 records i pris-tabellen hvor det enkelte nummer er med, disse records vil så have forskellige dato hvor prisen er gældende fra og derfor også forskellige priser.
Håber det ga' lidt en ide om hvad jeg skal bruge det til :)
Jeg kan få det til at virke ved at group by nummer, pris, pris2 i mit view og i min select der henter i view'et gøre sådan her: SELECT TOP 1 * FROM VIEW1 WHERE nummer = 1000 ORDER BY dato DESC
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.