Avatar billede sth Novice
26. juli 2000 - 15:52 Der er 6 kommentarer og
3 løsninger

Hvordan :if [total]= 0 then [Procent_forsinket]=0

Jeg har lavet en forespørgsel der viser nogle procenter, mit problem er at jeg somme tider ikke har nogle data og derfor kommer til at dividere med 0 (nul) så nu vil jeg gerne vide om det er muligt at indsætte et kriterium der gøre at det der bliver vist ikke er fejl men 100% kan man det.
Min nuværende sql-kode ser sådan ud:
SELECT [Ugedata].[sted], [Ugedata].[aar], [Ugedata].[Uge], [Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder] AS Total, [Akunder_forsinket]+[Bkunder_forsinket]+[Ckunder_forsinket]+[Dkunder_forsinket]+[Ikunder_forsinket] AS Total_forsinket, 1-[Total_forsinket]/[total] AS Procent_forsinket
FROM Ugedata
ORDER BY [Ugedata].[Uge] DESC;

Det der går galt er at  “Total”  sommetider er nul, og så får man jo en fejl, kan man indsætte et kriterium i “ Procent_forsinket” der gør at ”Procent_forsinket” bliver sat til nul hvis ”Total” =0, altså i stil med: if [total]= 0 then [Procent_forsinket]=0
Avatar billede macjensen Nybegynder
26. juli 2000 - 16:10 #1
Prøv denne :
SELECT [Ugedata].[sted], [Ugedata].[aar], [Ugedata].[Uge], [Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder] AS Total, [Akunder_forsinket]+[Bkunder_forsinket]+[Ckunder_forsinket]+[Dkunder_forsinket]+[Ikunder_forsinket] AS Total_forsinket, 1-[Total_forsinket]/[total] AS Procent_forsinket
FROM Ugedata WHERE ((([Total]) Is Not Null));
ORDER BY [Ugedata].[Uge] DESC;

Avatar billede cktarget Nybegynder
26. juli 2000 - 19:32 #2
Problemet er jo ikke her at total antager vaerdien NULL, med at den anteger heltallet 0.

Dvs. proevv istedet for denne saetning

SELECT [Ugedata].[sted], [Ugedata].[aar], [Ugedata].[Uge], [Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder] AS Total,
                [Akunder_forsinket]+[Bkunder_forsinket]+[Ckunder_forsinket]+[Dkunder_forsinket]+[Ikunder_forsinket] AS Total_forsinket, 1-[Total_forsinket]/[total] AS
                Procent_forsinket
                FROM Ugedata WHERE Total!=0;
                ORDER BY [Ugedata].[Uge] DESC;
Avatar billede sth Novice
26. juli 2000 - 20:20 #3
macjensen  og cktarget 

Det virker ikke, jeg ville jo også gerne have sat Procent_forsinket til 0 hvis total er = 0

Ander forslag ?
Avatar billede cktarget Nybegynder
26. juli 2000 - 20:23 #4
Selvfoelgelig er det ikke noget der virker (dumme mig)

Hvis du er vant til at bruge vba, kan du klare denne lille finesse,ved at bruge en eller anden form for betingelse.
Dvs. naar du udregner [Ugedata].[sted], [Ugedata].[aar], [Ugedata].[Uge], [Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder]
saa tjekker du lige om Total er 0, hvis dette er tilfaeldet, saa spring over forespoergslen, og goer noget andet.
Avatar billede jalle Nybegynder
26. juli 2000 - 20:36 #5
Du kan også prøve denne med IIf() formen:

SELECT [Ugedata].[sted], [Ugedata].[aar], [Ugedata].[Uge], IIf([Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder]=\"\";0;[Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder]) AS Total, IIf([Akunder_forsinket]+[Bkunder_forsinket]+[Ckunder_forsinket]+[Dkunder_forsinket]+[Ikunder_forsinket]=\"\";0;[Akunder_forsinket]+[Bkunder_forsinket]+[Ckunder_forsinket]+[Dkunder_forsinket]+[Ikunder_forsinket]) AS Total_forsinket, 1-[Total_forsinket]/[total] AS Procent_forsinket
FROM Ugedata
ORDER BY [Ugedata].[Uge] DESC;

Avatar billede sth Novice
26. juli 2000 - 21:09 #6
jalle:
sdå får jeg denne fejl: sytax error in query expression
IIf([Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder]=\"\";0;[Akunder]+[Bkunder]+[Ckunder]+[Dkunder]+[Ikunder])\'

!!!!

Det kunne ellers se ud til at det var en fin ide\'  !
Avatar billede cktarget Nybegynder
26. juli 2000 - 21:23 #7
Hej sth
Det maa vaere fordi, du skriver det i SQL vinduet, i access. Den jalle, skrev skal saa vidt jeg ved bruges i forbindelse med vba, hvor du bruger vba, indbyggede metoder til at koere forespoergsler.
mvh Kedde
Avatar billede jalle Nybegynder
26. juli 2000 - 22:37 #8
Prøv at tilføje [AKunder], [BKunder] ovs. tilsidst. Det skal også virke i en alm. forespørgsel.
Avatar billede sth Novice
27. juli 2000 - 10:04 #9
Jeg skulle bruge denne forespørgsel på en ASP-side, Jeg har løst problemet med at lave en program stumt der laver det rigtigt. jeg lukker derfor dette spørgsmål, og deler de 100 point mellem jer som tak for hjælpen.
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