25. april 2002 - 13:30Der er
7 kommentarer og 3 løsninger
samle recordsets til en - der er kun en post der varierer
Hvordan gør man hvis man eksempelvis på en søgning får 10 poster, hvor alle sammen er ens på nær et enkelt felt. Jeg vil gerne - i stedet for 10 records - have en en record, men hvor det ene felt der varierer for hver record samledes med kommaseparering ... ?
strSQL = "Select * From TABEL Where(Værdi1 = Værdi1 AND Værdi2 = Værdi2)" Set rs = Conn.Execute(strSQL) If Not (rs.BOF OR rs.EOF) Then strV1 = rs("Værdi1") strV2 = rs("Værdi2") End If
Det kan ikke gøres i en SQL-sætning. Men denne her måde kan evt. anvendes:
Hvis der er 3 felter og felt1 og felt2 er ens og felt3 er forskellig kan det gøres således:
' Hent alle sorteret efter felt1, felt2 SQL = "select * from tabelnavn order by felt1, felt2" ' Åbn SQL
strLast = RS("felt1") & RS("felt2") strFelt3 = "" do while not RS.EOF ' Gennemløb alle strChk = RS("felt1") & RS("felt2") if strChk <> strLast then ' Udskriv når felt1 og felt2 er forskellige fra forrige Response.Write(strLast & " felt3:" & strFelt3) strLast = strChk strFelt3 = "" else if strFelt3 <> "" then ' Sammensæt felt3 adskildt af komma strFelt3 = strFelt3 & "," end if strFelt3 = strFelt3 & RS("felt3") end if RS.MoveNext Loop Response.Write(strLast & " felt3:" & strFelt3)
Det jeg mener er bare at hvis du vil lave noget hvor man sepererer med et komma, så bliver det langt mere indviklet og avanceret end det behøver at være.
Mit forslag er i hvert fald at du laver det sådan her :
'Jeg ved jo ikk', hvad dine felter hedder så her er det værdi1 og 2. strSQL = "Select * From TABEL Order By Værdi1" Set rs = Conn.Execute(strSQL) 'laver en løkke der består af strV1 alle dem som er ens(er lig med Værdi1) 'samt består af strV2 der er den enkelte/eller flere der er = Værdi2. If Not (rs.BOF OR rs.EOF) Then strV1 = rs("Værdi1") strV2 = rs("Værdi2") End If
Do 'skriv udfaldet af værdi1 og derefter værdi2 Response.Write " & strV1 & "<br>" & strV2 & " rs.MoveNext Loop While Not rs.EOF
hmm - jeg er helt rund i hovedet af at prøve at få det ind i min query.. Den ser således ud: ------------- <% If Request.Querystring ("Ordrenummer") > "0" Then %> <% Set dbOracle = CreateObject("ADODB.Connection") get_adno = request.querystring ("ordrenummer") strConn = "DATABASEN" dbOracle.Open strConn strSQL = "Select distinct(a.adno), p.pdate, a.iremarks, p.colour, p.xsize, p.ysize, p.paper, a.ad_type, p.prmethod, p.ready, a.maker, a.salno, p.modifier, p.remarks, p.adrno, a.adrname, a.adrtel, a.receiver FROM pub p, ad a WHERE p.adno=a.adno AND a.adno='"&get_adno&"'" Set rsOracle = CreateObject("ADODB.Recordset") rsOracle.Open strSQL, dbOracle %> ------------- Her kalder jeg en indtastet ordrenummer (get_adno) og lister alle informationerne om denne ordre. Så brager den derudaf med informationerne, men den laver en ny tabel for hver p.paper der er i databsen (da denne er forskellig fra alle de andre felter). Jeg ville gerne have vist informationerne i én tabel, men hvor p.papaer sættes efter hindanden.
lukker - I får lidt point for forsøget (jeg ved ikke om Jeres forslag virker eller om det er mig der er spasser til asp)
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.