23. september 2010 - 10:56Der 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.
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.
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.
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.
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.
Synes godt om
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
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.
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
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;
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.
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;
Synes godt om
Ny brugerNybegynder
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.