Gå til innhold

Min, Max og Stdev av flere kolonner (løst)


Anbefalte innlegg

Hei

 

Holder på med Access 2000. og mot en SQL database (SQL 2000).

Jeg har en SQL spørring som jeg har laget en rapport fra.

I den spørringen har jeg to felter RS og RF som jeg gjerne vil finne Min, max og stdev av.

 

Så lende jeg bare skulle ha min, max eller stedev av den enne verdie så er det ikke noen problemmer. F.eks : =min([RS]).

 

I Excel kan man skrive =MIN(B1:B3;A1:A3) så får man den riktige verdien.

 

Fins det en enkel måte å gjøre det på i Access rapporten. Det blir i ControllSource til feltet jeg definere funksjonen.

 

Håper noen kan hjelpe med.

 

Spesielt med STDEV. De kan man jo løse med if setning, men kan man slippe if setningen så er jo det bra.

 

På forhånd takk

Espen

Endret av espen_b
Lenke til kommentar
Videoannonse
Annonse

I en reolasjonsdatabase jobber man med klonner og rader på en noe annen måte enn excel som er et regneark. F eks er skal radnummeret være uvesentlig, og man søker typsik å finne minimumsverdien til en bestemt kolonne. Det du ønsker å få til lar seg løse, f eks med en kombinasjon av case og aggregering, men ut i fra problemstillingen tenker jeg umiddelbart at det synes som om det er noe feil med datamodellen, selv om det sikkert kan være helt legitime grunner til å ha de ønskene du har. Dersom du kommer med litt kode og gir informasjon om f eks hvilke kolonner og rader du ønsker å finne minimumsverdien til så skal jeg se om jeg får hjulpet deg best mulig.

Lenke til kommentar

Hei

 

Beklager at jeg ikke har svart tidlgere. Postet det rett før jeg tokk vinterferie.

 

Jeg tror databasen er riktig.

Systemet skal registrer analyse dataer på forskjelige tidspunkt i processen. RS - startsverdien og RF - Slutt verdien. Vi tar analyser i starten og slutten av en prosess. Derfor har jeg to kolonner.

 

Så lager jeg en rapport som henter frem disse verdiene og så skal jeg regne ut min, max og stdev fra disse verdiene i rapporten. Som en footer i Access.

 

Detter er SQL spørringen (litt modifisert):

 

strNewRecord = "SELECT Batch, Mix, Testspec, ID, Parameter, Method, Sequence, RS, RF, Kode, LSL, USL, Unit, Analyst, Initial, Checked, Regdate, Proddate, Veridate, Remarks FROM tblRegistration WHERE Testspec = '" & SelectionSpec & "' and Parameter = '" & SelectionParameter & "' and (Proddate >= '" & PeriodFrom & "' and Proddate <= '" & PeriodTo & "')"

 

Begrensningene kommer fra et skjema i Access.

 

 

Dette gir denne rapporten. La med et utsnitt av rapporten.

post-113997-1172480995_thumb.jpg

 

 

Min er løst slik: =IIf(Min([RS])<Min([RF]);Min([RS]);Min([RF]))

Max er løst slik: =IIf(Max([RS])>Max([RF]);Max([RS]);Max([RF]))

 

Avg: =(Sum([RS])+Sum([RF]))/[N] (N er antall verdier av RF + RS)

SD: =StDev([RF])

 

 

Håper dette er til mere hjelp.

 

På forhånd takk.

Espen

Lenke til kommentar

Det var en grunn til at jeg modererte meg litt å sa ta det synes som om det var noe feil i datamodellen, for det finnes alltid unntak som bekrefter regelen, som her. Og jeg tror ikke det finnes noen enklere måte å løse problemet på enn det du har gjort.

Lenke til kommentar

Hei

 

For de som lurer på hvordan jeg gjorde det.

 

Jeg lagde 2 skjulte felter i datalj området.

Felt 1: =([RF]-[AvgAll])^2 (Navn: AvvikRF)

Felt 2: =([RS]-[AvgAll])^2 (Navn: AvvikRS)

 

Tok også og la på egenskapen Runing Sum : Over group

 

 

I footeren (der statistiken ligger):

Lagde jeg et felt og la in formelen: =(([AvvikRF]+[AvvikRS])/([NAll]-1))^0,5

 

NAll er antall verdier av RS + antall verdier av RF

^0,5 skal være roten av

 

 

Håper det var forståelig. Hvis man sjekker formelen så håper jeg det stemmer.

 

Espen

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...