webForumDet fria alternativet

Lista de poster enligt två villkor

ASP

29 svar · 589 visningar · startad av plelkes

Medlem sedan mars 2002823 inlägg
Frågan#1

Hej
På denna sida ser vi innehållet i en databastbl.

Om vi markerar en post/person i tabellen vill jag lista tblinnehållet med två villkor uppfyllda:

  1. tblPersonuppgifter.PatID = "&Request.Form("rapport")
    
  2. och dag

Vet inte om jag uttryckte mig klart:det jag vill göra är att URL=http://www12.brinkster.com/vatskebalans/tblvetskebalans11.asp\]från tabellen lista enbart de poster där

tblPersonuppgifter.PatID = "&Request.Form("rapport")

Med nedanstående kod

<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" tblPersonuppgifter.PatID = "&Request.Form("rapport")&" ORDER by dag ASC"
datum ="" 
Set rs1 = vbalans.Execute (strSQL1)
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function

Response.Write SvPnr(rs1("ID")) & "<BR>"
Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
Do While Not rs1.EOF

If datum <> rs1("Dag") then
datum = rs1("Dag")
Response.Write "<B>" & rs1("Dag") & "</B><BR>" & "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
Else
Response.Write "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
End If
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
%>

Får jag med alla poster som finns i tabellen i datumordning

Medlem sedan mars 2002823 inlägg
#2

Jag sliter mitt hår, men kör bara djupare ner i leran*snyft* Vet inte ens vad jag skall söka efter här eller på google. Det nedanstående pseudokod villjag översätta:

  1. kolla om vilke patid som är i kryssad ( rs1("ID") = "&Request.Form(""rapport"")&") eller?
  2. sök efter första datumet som detta id förekommer i tbl
  3. skriv ut samtliga poster som gäller för detta datum och detta id
  4. nästa datum
Medlem sedan mars 2002823 inlägg
#3

Kan inte släppa tanken på detta dilemma... även fast jag jobbar...
Jag tycker att nedanstående kod borde lösa problemet - men icke...

<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" tblPersonuppgifter.PatID = "&Request.Form("rapport")&" ORDER by dag ASC"
datum ="" 
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function

Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If rs1(”ID”) = "&Request.Form("rapport")&" then 
Response.Write SvPnr(rs1("ID")) & "<BR>"
Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
ElseIf datum <>rs1(“Dag”) then
datum = rs1(”Dag”)
ElseIf datum = rs1("ID") then
Response.Write "<B>" & rs1("Dag") & "</B><BR>" & "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
Else
Response.Write "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
End If
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
%>

Ser ni kära wf´are felet??

Medlem sedan mars 2002823 inlägg
#4

Fungerar men inte som jag vill..
Kryssa i en ruta och tryck på knappen så ser ni vad jag menar,,,

Förslag?

Medlem sedan apr. 2004778 inlägg
#5

Vet inte hur kommaseparerade variabler funkar i Access men prova

strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" tblPersonuppgifter.PatID In ('"&Request.Form("rapport")&"') ORDER by dag ASC"
Medlem sedan mars 2002823 inlägg
#6

tyvärr är inte felet i strSQL...
Ni kan se själva:
http://www12.brinkster.com/vatskebalans/count.asp

Medlem sedan apr. 2004778 inlägg
#7

Ok, när jag provade länken i ditt förra inlägg så fick jag ett annat fel och då var det sql strängen.
Det står ju klart och tydligt att det är ElseIf det är fel på.
Tabba upp din kod så du får kolla på dina If-Else så hittar du felet. Istället för ElseIf använd If-Else-End If så du verkligen vet vad du gör.

Medlem sedan mars 2002823 inlägg
#8

Nu har jag gjort om koden

<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" tblPersonuppgifter.PatID = "&Request.Form("rapport")&" ORDER by dag ASC"
datum ="" 
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function

Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If rs1("ID") = "&Request.Form(""rapport"")&" then 
Response.Write SvPnr(rs1("ID")) & "<BR>"
Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
Else 
Response.Write "Du måste markera en patient"
End If
   
    If datum <>rs1("Dag") AND datum = rs1("Dag") AND datum = rs1("ID") then
     Response.Write "<B>" & rs1("Dag") & "</B><BR>" & "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
	   If datum = rs1("Dag") AND datum = rs1("ID") then
         Response.Write "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
       Else
	      Response.Write "Inga fler data för denna patient"
		End If
End If
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
%>

resultatet blir bara "ändlös" utskrivning av

Du måste markera en patient"

Snälla ni hjälp mig innan jag blir galen

Medlem sedan apr. 2004778 inlägg
#9

Du har skrivit

If rs1("ID") = "&Request.Form(""rapport"")&" then

Borde vara

If rs1("ID") = Request.Form("rapport") then
Medlem sedan mars 2002823 inlägg
#10

Borde vara

kod:--------------------------------------------------------------------------------
If rs1("ID") = Request.Form("rapport") then
--------------------------------------------------------------------------------

Tyvärr fungerar inte - utan resultatet blir samma sak.
SEdan tänkte jag på fältegenskaperna:

  • patID är text
  • Dag är Date

Så jag gjorde följande förändringar ( förändringarna är fet-markerade)

<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" [B]tblPersonuppgifter.PatID = '"& Request.Form("rapport")&"' [/B]ORDER by dag ASC"
datum ="" 
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function

Set rs1 = vbalans.Execute (strSQL1)
Do While Not rs1.EOF
If rs1("ID") = Request.Form("rapport") then 
Response.Write SvPnr(rs1("ID")) & "<BR>"
Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
Else 
Response.Write "Du måste markera en patient"
End If
   
    If datum <>rs1("Dag") AND [B]datum = CDate(rs1("Dag"))[/B] AND datum = rs1("ID") then
     Response.Write "<B>" & rs1("Dag") & "</B><BR>" & "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
	   If [B]datum = CDate(rs1("Dag")) [/B]AND datum = rs1("ID") then
         Response.Write "<I>" & rs1("FluidNamn") & "</I>   " & "<U>" & rs1("Volym") & "  ml</U><BR>"
       Else
	      Response.Write "Inga fler data för denna patient"
		End If
End If
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
%><

Får dock fortfarande felutskrift

Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'tblVetskebalans.FluidID = tblFluids.FluidID AND tblPersonuppgifter.PatID = ''1212121212'''.

/vatskebalans/visa_rapporten102.asp, line 25

Medlem sedan apr. 2004778 inlägg
#11

Om det är en missing operator så brukar det tyda på att kolumnnamnet saknas eller är fel. Kontrollera alla kolumner i de tabeller du använder i sql-satsen och kolla så att du stavat rätt.

Medlem sedan mars 2002823 inlägg
#12

Först en fråga - hade jag rätt i min justeringar kring fältegenskaperna?

HUr jag än ändrar får jag inte till det hela*snyft*
Nu har jag ändrat till:

strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" ID = "& Request.Form("rapport")&" ORDER by Dag ASC"
Response.Write strSQL1

Då får jag utskriften

SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND ID = '6301038964'ORDER by dag ASC
Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

Om jag istället:

strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" ID = '"& Request.Form("rapport")&"' ORDER by Dag ASC"
Response.Write strSQL1

SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND ID = ''1111111111'' ORDER by Dag ASC
Microsoft JET Database Engine error '80040e14'

Syntax error (missing operator) in query expression 'tblVetskebalans.FluidID = tblFluids.FluidID AND ID = ''1111111111'''

PS tabell-och kolumnnamnen existerar och är rättstavade!!

Medlem sedan apr. 2004778 inlägg
#13

Du gör något väldigt konstigt i ditt formulär. När jag tolkar dina utskrifter så verkar det som att Request.Form("rapport") innehåller '11111111111' men den borde innehålla 1111111111, alltså inga fnuttar. Sen ska du använda ditt andra alternativ.
Men anledningen till felet i första är att det inte är något blanksteg mellan ..111' och ORDER...

Medlem sedan mars 2002823 inlägg
#14

PDahlen skrev:

Du gör något väldigt konstigt i ditt formulär. När jag tolkar dina utskrifter så verkar det som att Request.Form("rapport") innehåller '11111111111' men den borde innehålla 1111111111, alltså inga fnuttar

Jo jag vet det.. Nu när du "säger" det kommer jag ihåg att jag hade bekymmer med dessa fnuttar tidigar. då fick jag av @nders tipps på att göra en replace...
Nedna följer formuläret:

<FORM ACTION="visa_rapporten102.asp" METHOD="post">
<TABLE border=1>
       <TR>
          <TD><B>Personnummer</B></TD>
          <TD><B>Efternamn</B></TD>
          <TD><B>Förnamn</B></TD>
    <TD><B>Visa rapport</B></TD>
       </TR>
 <%
 	Set objRS = objConn.Execute(strSQL)
    Do While Not objRS.EOF
       Response.Write "<TR><TD>" & objRS("PatID") & "</TD>"
       Response.Write "<TD>" & objRS("ftEnamn") & "</TD>"
       Response.Write "<TD>" & objRS("ftFnamn") & "</TD>"
Response.Write "<TD><INPUT NAME=""rapport"" TYPE=""checkbox"" VALUE=""'"& objRS("PatID") &"'""></TD></TR>"
       objRS.MoveNext
    Loop
Response.Write "<TR ALIGN=""RIGHT"" VALIGN=""MIDDLE"">"
    Response.Write "<TD COLSPAN=""3"">"
    Response.Write "<INPUT TYPE=""submit"" VALUE=""Rapport"">"
    Response.Write "</TD></TR>"
	Response.Write "</TABLE></FORM>"

Har försökt medliknande replace

ID = '"& Replace(Request.Form("rapport"), "'", "")&"' ORDER by Dag ASC"

Men resultatet blir fortfarande det samma:

SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND ID = '1212121212' ORDER by Dag ASC
Microsoft JET Database Engine error '80040e10'

No value given for one or more required parameters.

Medlem sedan mars 2002823 inlägg
#15

Nu fattar jag nada - som vanligt!!
Med koden

<%  
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL1 = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, " &_
" tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym," &_
" tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn" &_ 
" FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
" tblVetskebalans.FluidID = tblFluids.FluidID AND " &_
" tblPersonuppgifter.PatID = "&Request.Form("rapport")&" ORDER by Dag ASC"

Set rs1 = vbalans.Execute (strSQL1)
Response.Write strSQL1 & "<P>"
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
    Response.Write SvPnr(rs1("ID")) & "<BR>"
        Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
   
vbalans.Close
Set vbalans = Nothing
%>

Får rätt resultat fastän det kommer med "enkel fjuttar" när jag printar ut strSQL1

SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftEnamn, tblPersonuppgifter.ftFnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.FluidID = tblFluids.FluidID AND tblPersonuppgifter.PatID = '1111111111' ORDER by Dag ASC
111111 - 1111
Elvansson, Elvan

Medlem sedan mars 2002823 inlägg
#16

Efter att ha hållit på halva em och hela kvällen har jag tänkt om
det är fr tblVetskebalans dvs http://www12.brinkster.com/vatskebalans/tblvetskebalans11.asp
som jag vill sortera ut de datum mm som gäller en bestämmd pat.Därför har jag gjort om koden till:

<%@ Language=VBScript LCID=1053%>
<HTML>
<title>Rapport</title>
<BODY>
 <%
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL = "SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag," & _
        " tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Energi," & _
		" tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftFnamn," &_
		" tblPersonuppgifter.ftEnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE" &_
        " tblVetskebalans.PatID = tblVetskebalans.Dag AND tblPersonuppgifter.PatID = "&Request.Form("rapport")&" ORDER by Dag ASC"
Set rs1 = vbalans.Execute (strSQL)
Response.Write "<BR><B>" & strSQL & "</B><P>"
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
    Response.Write SvPnr(rs1("ID")) & "<BR>"
    Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
 Do While Not rs1.EOF
       Response.Write "<TR><TD>" & rs1("Dag") & "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
 %>
</TABLE>
</body>
</html>

Nu blir dock utskriften:

SELECT tblFluids.FluidNamn, tblFluids.FluidID, tblVetskebalans.Dag, tblVetskebalans.PatID AS patid, tblVetskebalans.FluidID, tblVetskebalans.Energi, tblVetskebalans.Volym, tblPersonuppgifter.PatID AS ID, tblPersonuppgifter.ftFnamn, tblPersonuppgifter.ftEnamn FROM tblVetskebalans, tblFluids, tblPersonuppgifter WHERE tblVetskebalans.PatID = tblVetskebalans.Dag AND tblPersonuppgifter.PatID = '1111111111' ORDER by Dag ASC
error '80020009'

/vatskebalans/visa_rapporten102.asp, line 20

varför detta strul - det funkade ju lite.. i inlägget ovan..

Medlem sedan apr. 2004778 inlägg
#17

Skriv om din SELECT. Felet innebär att du har en kolumn av typ TEXT i din SELECT och då måste du sätta den sist.

Medlem sedan mars 2002823 inlägg
#18

jag försökt både googa och söka här på wf...
Hittade det där om att behöva sätta sist, men trodeatt det behövs bara efter WHERE...

Medlem sedan mars 2002823 inlägg
#19

provar med joint

<%
pat = Request.Form("rapport")
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi," &_
         " p.ftEnamn, p.ftFnamn FROM (tblVetskebalans v INNER JOIN tblFluids f"&_
          " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &_
          " WHERE p.PatID = "& pat &""
		  Set rs1 = vbalans.Execute (strSQL)
Response.Write "<BR><B>" & strSQL & "</B><P>"
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
    Response.Write SvPnr(rs1("PatID")) & "<BR>"
    Response.Write "<B>" & rs1("ftEnamn") & ", " & rs1("ftFnamn") & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
 Do While Not rs1.EOF
       Response.Write "<TR><TD>" & CDate(rs1("Dag") )& "</TD>"
       Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
       Response.Write "<TD>" & rs1("Volym") & "</TD>"
       Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
rs1.MoveNext
Loop
vbalans.Close
Set vbalans = Nothing
 %>

Verkar funka bra:

SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi, p.ftEnamn, p.ftFnamn FROM (tblVetskebalans v INNER JOIN tblFluids f ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID WHERE p.PatID = '1111111111'
111111 - 1111
Elvansson, Elvan

Datum Vätska Volym Energi
2004-03-21 Blod 1000 0
2004-03-21 Sondmat 550 275
2004-03-21 Sondmat 550 275
2004-03-21 Sondmat 550 275
2004-04-29 Albumin 76 0
2004-05-02 Proviva 123 0

Om jag nu vill summera ihop kolumnerna volym och energi för sig:

  1. skall jag skapa ytterligare en tabell tex tblsumma med fälten: id, datum, totv,tenergi?
  2. har ngn av er lite kodförslag kanske?
Medlem sedan apr. 2004778 inlägg
#20

Lägg till SUM och GROUP BY i din SELECT.
Man kan göra en hel del redan i sql-frågan. Det finns lite bra artiklar om det på IDG, http://www.idg.se/webstudio/pub/object.asp?id=14

276 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)