Avatar billede steensommer Praktikant
03. april 2008 - 20:03 Der er 7 kommentarer og
1 løsning

VB .Net SQL Gennemsnit

Hej
Kort fortalt har jeg en SQL database hvorfra følgende data skal extraheres:
"Antal" som er det antal patienter det drejer sig om og findes således:
Dim Command1 As New SqlCommand("SELECT Count(DISTINCT HCV.[Patient nr]) from HCV WHERE Årstal = ('" & Årstal & "')", Connection)
Dim reader1 As SqlDataReader = Command1.ExecuteReader()
If reader1.Read() Then
Antal = reader1.GetInt32(0)
End If
reader1.Close()


Derefter skal jeg finde 2 tider: "Perfusionstid" og "Aortatangtid" og trække dem fra hinanden (PTTid)- findes på følgende måde:


Dim Command As New SqlCommand("SELECT Perfusionstid, ortatangtid FROM [HCV] WHERE Left([Patient nr], 2) = Right(('" & Årstal & "'), 2)", Connection)
Dim reader As SqlDataReader = Command.ExecuteReader()
If reader.Read() Then
Dim PTTid As String
Dim PerfTid As String = reader.GetString(0)
Dim TangTid As String = reader.GetString(1)
PTTid = (PerfTid - TangTid)
End If
                     
Nu kommer problemet:
Jeg skal finde gennemsnittet fra alle patienternes PTTid (flere hundrede). Jeg har forsøgt mig med: "for each-next) men det er desværre ikke lykkedes.
Er der en hjælpsom ekspert der give en hånd.
vh Steen
Avatar billede nielle Nybegynder
03. april 2008 - 21:55 #1
Lidt svært at gennemskue din kode og din database struktur, men mon ikke det simpelthen kan klares i én SQL sætning:

Dim sql = "SELECT avg(Perfusionstid - ortatangtid) AS gennemSnit FROM HCV WHERE Left([Patient nr], 2) = Right('" & Årstal & "', 2)"

- altså ved at lade databasen om selv at udregne gennemsnittet.
Avatar billede steensommer Praktikant
03. april 2008 - 22:28 #2
Hej
Det lyder da som en god idé. Jeg har dog fundet ud af at Perfusionstid og Aortatangtid er deklareret som nvarchar - hmmm!
Avatar billede nielle Nybegynder
03. april 2008 - 22:57 #3
Det bør du nok overveje at lave om ... det er ikke en speciel effektiv måde at opbevare de data på.
Avatar billede steensommer Praktikant
03. april 2008 - 23:31 #4
Det har du da ret i. Det er dog altid sværere at ændre i andres databaser. Når det er ændret vender jeg lige tilbage med kommentar eller points :-)
Avatar billede steensommer Praktikant
11. april 2008 - 17:37 #5
Ups - pinligt. Dit forslag fungerer - jeg havde lige glemt at vende tilbage - UNDSKYLD! Svar så får du point og et stort tak :-)
vh Steen
Avatar billede nielle Nybegynder
12. april 2008 - 07:11 #6
Svar :^)
Avatar billede steensommer Praktikant
12. april 2008 - 09:28 #7
Stort tak :-)
Avatar billede nielle Nybegynder
13. april 2008 - 08:51 #8
Tak for point :^)
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
Kurser inden for grundlæggende programmering

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



IT-JOB

De Nationale Geologiske Undersøgelser for Danmark og Grønland (GEUS)

IT-systemadministrator søges til GEUS

Netcompany A/S

Test Specialist