Avatar billede jensen363 Forsker
15. november 2004 - 10:17 Der er 7 kommentarer og
2 løsninger

Opgave : Top 10 pr. kunde, produkt og måned ( akk )

Jeg har en database med ca. 5.000 kunder registreret med følgende oplysninger :

KundeId  Produkt  Måned    Realiseret salg
1        1        200401    10.000
1        2        200401    15.000
2        1        200402    12.000
2        2        200402    13.000

osv.

Pr. kunde, skal der kunne laves en Top 10 liste akkumuleret for måneden, endvidere skal der være mulighed for at lave en tilsvarende nedbrydning til Top 10 for produktet.

Produktdimension findes opså som stamdatatabel.

Nogen idé ... og er opgaven formuleret tilfredsstillende ???
Avatar billede overchord Nybegynder
15. november 2004 - 12:54 #1
Generel top 120

SELECT TOP 10 KundeID, Maaned,[Realiseret salg]  FROM DinTabel WHERE Maaned = 200411 ORDER BY [Realiseret salg] DESC;

For et givent produkt:
SELECT TOP 10 KundeID,Produkt, Maaned,[Realiseret salg]  FROM DinTabel WHERE Maaned = 200411 AND Produkt = 1 ORDER BY [Realiseret salg]

Der kan saa tilfoejes links til kunde og produkt tabellerne bageftrer hvis du gerne vil have navne paa kunder og produkterne paa.
Avatar billede overchord Nybegynder
15. november 2004 - 12:54 #2
lol ikke top 120 - top 10 ;-)
Avatar billede overchord Nybegynder
15. november 2004 - 12:58 #3
Jeg var ikke helt sikker paa hvad du mente med akkumuleret salt - men jeg gaar ud fra at det var den du har i realiseret salg...
Avatar billede jensen363 Forsker
15. november 2004 - 13:45 #4
Jeg er bekendt med den indbyggede mulighed for Top 10.

Dit eksempel med Top 10 for kunden, giver ikke den ønskede akkumuleret sum ( år til dato ) ... der skal jo princippielt genereres 12 * Top 10 når der arbejdes med et helt år.

Mht. produkt, er den lidt mere problematisk, idet det er slutbruger som helt selv bestemmer produktsammensætninger. Denne kan skifte fra måned til måned, derfor skal data kunne genereres fra scratch hver gang
Avatar billede overchord Nybegynder
15. november 2004 - 15:46 #5
ok lidt mere tricky saa :-)
Mht Akkumuleret top10 maa du kunne lave det som en summering af Realiseret salg hvor

SELECT TOP 10 kundeid,Maaned, SUM([Realiseret Salg]) FROM Dintabel WHERE LEFT(maaned,4) = Datepart("yyyy",Now()) ORDER BY SUM([Realiseret Salg]) DESC
Avatar billede jensen363 Forsker
15. november 2004 - 16:01 #6
Det giver ikke mening ... :o(

Der er vist kun een vej at gå, nemlig 12 SQL-sætninger ( een pr. periode ) ... suk
Avatar billede overchord Nybegynder
15. november 2004 - 18:04 #7
erhm ok saa har jeg ikke forstaaet dit spm. Vil du have det maanedsvis -men akkumulativt? - Ja saa er der ingen andre muligheder :-) Mend mindre du laver en enkelt som du fodrer med input i form af aar og maanedsnummer.
Min loesning var at give en akkumulativ top 10 baseret paa nuvaerende status.
Avatar billede jensen363 Forsker
15. november 2004 - 19:21 #8
Tak fordi du forsøgte ... :o)
Avatar billede jensen363 Forsker
16. november 2004 - 12:01 #9
Jeg forsøger selv videre
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester