Gegevens maskeren op Rapport

Status
Niet open voor verdere reacties.

Honky

Gebruiker
Lid geworden
18 apr 2007
Berichten
25
Ik heb een rapport gemaakt met de 10 best verkopende producten met de simpele maar effectieve code

SELECT TOP 10 Productcode
FROM Order
ORDER BY Productcode ASC

Nou dat werkt en wordt mooi uitgevuld op het rapport maarja management snapt niks van een formulier met productcodes en klantnummers en dergelijke. Deze staan in andere tabellen zoals Klant en Product.
Hoe kan ik ervoor zorgen dat de daadwerkelijke namen van producten ed weergegeven worden op het formulier om zo een logisch rapport te krijgen?
Ik ben niet zo sterk in SQL maar is het op de een of andere manier mogelijk om de overige op te vragen gegevens in de SELECT te zetten zonder dáár over top 10 gegevens te berekenen?
 
Je selecteert in je query de eerste 10 producten uit je order tabel. Afhankelijk hoe deze gesorteerd wordt krijg je 10 records die niet persé de best verkopende zijn.
Hier join ik de product tabel zodat je de naam mee krijgt.
Code:
SELECT TOP 10 Productcode, Productnaam
FROM Order inner join Product on Order.Productcode = Product.Productcode
ORDER BY Productcode ASC
Hier krijg je de 10 best verkopende producten. Natuurlijk onder voorbehoud want ik ken je veldnamen niet.
Code:
SELECT TOP 10 Order.Productcode, Product.Productnaam, Max(Order.Aantal) as MaxAantal
FROM Order inner join Product on Order.Productcode = Product.Productcode
GROUP BY Order.Productcode, Product.Productnaam
ORDER BY Max(Order.Aantal) DESC
Hier wil je de 10 best verkopende hebben. Als je ascending sorteert dan staan de slechtst verkopende bovenaan vandaar descending sorteren.
Als je het resultaat erna ascending sorteert dan krijg je je resultaat. Dat kan je doen m.b.v. een subquery of je bewaart deze query en die sorteer je oplopend.

Succes!
 
Je selecteert in je query de eerste 10 producten uit je order tabel. Afhankelijk hoe deze gesorteerd wordt krijg je 10 records die niet persé de best verkopende zijn.
Hier join ik de product tabel zodat je de naam mee krijgt.
Code:
SELECT TOP 10 Productcode, Productnaam
FROM Order inner join Product on Order.Productcode = Product.Productcode
ORDER BY Productcode ASC
Hier krijg je de 10 best verkopende producten. Natuurlijk onder voorbehoud want ik ken je veldnamen niet.
Code:
SELECT TOP 10 Order.Productcode, Product.Productnaam, Max(Order.Aantal) as MaxAantal
FROM Order inner join Product on Order.Productcode = Product.Productcode
GROUP BY Order.Productcode, Product.Productnaam
ORDER BY Max(Order.Aantal) DESC
Hier wil je de 10 best verkopende hebben. Als je ascending sorteert dan staan de slechtst verkopende bovenaan vandaar descending sorteren.
Als je het resultaat erna ascending sorteert dan krijg je je resultaat. Dat kan je doen m.b.v. een subquery of je bewaart deze query en die sorteer je oplopend.

Succes!


Tja dan krijg ik de melding dat productcode geen onderdeel is van een statistische functie. Daarnaast zou ik willen weten wat je precies bedoelt met Order.Aantal. Ik heb geen apart aantal veld in de order tabel zitten dus zat ik zelf wat meer aan iets van een COUNT functie te denken.
 
Het query statement heb ik uit mijn duim gezogen dus er kunnen fouten in zitten. Wees creatief en voeg zelf de productcode aan een statistische functie of voeg hem toe aan de groupby. Als je geen Order.Aantal hebt wat het je dan wel? Het aantal records in de order tabel is toch niet bepalend of iets veel verkoopt? Dan zou ieder product wat verkocht wordt een record zijn in je tabel. Dat lijkt me sterk. Als je wilt weten wie het meest een bepaald product heeft verkocht dan geef ik je gelijk. Alleenmoet je dan wel de verkoper koppelen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan