Avatar billede Bamma Nybegynder
23. september 2010 - 10:56 Der er 13 kommentarer og
1 løsning

Hvordan fordeler jeg felter efter størrelse

Jeg har dette indtil videre.

SELECT Person.Navn AS Person_Navn, Person.BMI AS BMI_low, Person.BMI AS BMI_average, Person.BMI AS BMI_high, Person.Middag, Person.Eftermiddag, Person.Aften, Person.nummer, Sted.Navn AS Sted_Navn
FROM Sted INNER JOIN Person ON Sted.StedID = Person.StedID

Det der sker nu er jeg for skrevet, personens BMI i alle 3 felter BMI_low BMI_average og BMI_High
Jeg vil gerne have at alt bliver sat ind efter hvor høj BMI'en er
har forsøgt med WHERE clause, men synes bare ikke jeg kan få den til at gøre hvad jeg vil have.
Avatar billede mugs Novice
23. september 2010 - 14:10 #1
Sorteringen hedder Order By...

Men jeg vil mene, at din db ikke er optimal bygget op i sin struktur. Du bør have BMI i et felt, og derefter kan du lave et udtryk med en IIf sætning der fortæller, om BMI er low eller high.
Avatar billede Bamma Nybegynder
24. september 2010 - 09:33 #2
grunden jeg vil have det på den måde er så det er hurtigere for mig at lave en rapport, jeg fater nemlig ikke det der expression syntax, hver gang jeg laver noget får jeg en fejl, og der er ingen forklaring med.
Avatar billede mugs Novice
24. september 2010 - 09:52 #3
Hvis du lægger din e-mail, kan jeg sende dig et eksempel senere.
Avatar billede Bamma Nybegynder
24. september 2010 - 10:14 #4
oki men forsøgte mig lige frem bruger det i rapport delen.
her mine forsøg:

IIf([BMI]<23;[BMI];Null) giver en cirkulær referance fejl

IIf([Person].[BMI]<23;[Person].[BMI];Null) her beder den om en Person parameter når jeg forsøger at køre den. Jeg vil jo bare gerne have den til at tage den person som er den i rækken den er kommet til.

min mail er bamma1985@gmail.com

på forhåmd tak
Avatar billede Bamma Nybegynder
24. september 2010 - 10:27 #5
Jeg kan næste gætte mig til at jeg prøver at returnere en liste
IIf([BMI]<23;[BMI];Null), ved at kalde BMI tror bare jeg skal forstå hvordan jeg for fat i den række listen er igang med at danne.
Eller har jeg skudt helt ved siden af min forståelse.
Avatar billede Slettet bruger
24. september 2010 - 11:59 #6
udtryk som feltværdier anvender almindelig komma separering mellem parametre - IIf([BMI]<23,[BMI],Null)
(det er i kontroler og på egenskabsark at parametre er semikolon separeret
Avatar billede Bamma Nybegynder
24. september 2010 - 12:13 #7
ellebe det giver min en syntax fejl, at lave det med komma tegn
Avatar billede mugs Novice
24. september 2010 - 12:21 #8
Eksempel sendt med dette udtryk som er afprøvet og fungerer:

Udtryk1: IIf([BMI]<20;"Ekstrem lav";IIf([BMI]>20 And [BMI]<24;"Normal";IIf([BMI]>25 And [BMI]<30;"Overvægtig";IIf([BMI]>=30;"Ekstrem overvægtig"))))
Avatar billede Bamma Nybegynder
24. september 2010 - 13:33 #9
for cirkulær refference fejlen ved dit exempel, er det mig der bruger expression forkert i Rapport funktionen ?
Avatar billede mugs Novice
24. september 2010 - 13:42 #10
Som du kan se i mit eksempel har jeg brugt udtrykket i en forespørgsel. Du kan blot lave en rapport på baggrund af denne forespørgsel og udtrykket vil blive vist i rapporten.
Avatar billede Bamma Nybegynder
27. september 2010 - 09:50 #11
har kigget på det eksempel, det er ikke helt det jeg skal bruge, men det er nok til at kunne omkode det til det jeg skal bruge, takker. Vidste ikke man kunne bruge iif i sql delen
Avatar billede Bamma Nybegynder
27. september 2010 - 09:52 #12
bare lige hvis andre skulle bruge det her:

SELECT Tabel1.person, Tabel1.BMI, IIf([BMI]<20,"Ekstrem lav",IIf([BMI]>20 And [BMI]<24,"Normal",IIf([BMI]>25 And [BMI]<30,"Overvægtig",IIf([BMI]>=30,"Ekstrem overvægtig")))) AS Udtryk1
FROM Tabel1;
Avatar billede mugs Novice
27. september 2010 - 17:52 #13
Tak for point.

Fidusen er, at indsætte en ny IIf i falskdelen, hvis udsagnet ikke er opfyldt.

Simplificeret vil det sige, at du har et udsagn (IIf BMI < 20) og hvis dette er opfyldt, returneres strengen "ekstrem lav", hvis det ikke er opfyldt, indsættes en ny IIF sætning (udsagn BMI > 20 AND BMI < 24, hvis dette er opfyldt returneres sttrengen "Normal", hvis det ikke er opfyldt indsættes en ny IIF o.s.v.
Avatar billede Bamma Nybegynder
01. oktober 2010 - 09:58 #14
Ja fandt jeg ud af, men da jeg vil have delt det op var det ikke nødvendigt at smid IIf's inde i false statement.

SELECT Person.Navn AS Person_Navn,
IIf([BMI]<24,[BMI],"") AS BMI_low,
IIf([BMI]>=24 And [BMI]<=29,[BMI],"") AS BMI_average,
IIf([BMI]>29,[BMI],"") AS BMI_high,
Person.Middag, Person.Eftermiddag, Person.Aften, Person.nummer, Sted.Navn AS Sted_Navn
FROM Sted INNER JOIN Person ON Sted.StedID = Person.StedID;
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