Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Knepig SQL fråga

Postades av 2008-02-11 03:16:36 - Torbjörn Karlsson, i forum databaser, Tråden har 2 Kommentarer och lästs av 1338 personer

Jag lite funderingar kring MaxRecords som jag inte får att lira som jag vill .

Nedanstående kod fungerar utmärkt på det sättet att 5 poster från ena eller den andra tabellen skrivs.

Det jag vill är att skriva ut 5 poster från TC.topcategory och sedan alla poster från MC.middlecategory. Nu begränsas det av GROUP BY som förvisso hämtar ut 5 poster från TC.topcategory men bara 1 post från respektive MC.middlecategory istället för alla.

Samma resultat om jag använder LIMIT 5 (MySQL)

Optimalt vore även om det går att sätta en egen limit på antal middlecategory som skall hämtas

Nån som förstår vad jag menar ?


Det skall se ut så här:
------------------------------------
topcategory
middlecategory,middlecategory osv

topcategory
middlecategory,middlecategory,middlecategory osv

-----------------------------------

RS.MaxRecords=5
SQL = "SELECT DISTINCT TC.topcategory,MC.middlecategory "&_
"FROM tbtopcategory TC,tbmiddlecategory MC,tbconnectcategory CC "&_
"WHERE TC.topcategoryID = CC.topcategorylink "&_
"AND MC.tbmiddlecategoryID = CC.middlecategorylink " &_
"GROUP BY TC.topcategory ASC"
RS.Open SQL,Conn


Do While Not RS.EOF

TopCat = RS("topcategory")
If LastTopCat <> TopCat Then
Response.Write("<br>" & RS("topcategory") & "<br>")
LastTopCat = TopCat
End If


Response.Write(RS("middlecategory") & ",")


RS.MoveNext
Loop

mvh
Torbjörn


Svara

Jag utvecklar min fråga...

Postades av 2008-02-11 20:08:45 - Torbjörn Karlsson

Recordsetet printas ut i en tabell prydligt med 3 kolumner så länge recordsetet grupperas (GROUP BY) med topcategory.

Eftersom gruppering är satt på topcategory så tas endast den första posten från (underkategorin) middlecategory med i recordsetet.

Tar jag bort (GROUP BY) så skrivs naturligtvis resten av middlecategory ut, MEN problemet som då uppstår (i min kod nedan) är att middlecategory ses som egna poster, INTE som en underkategori.


DETTA ÄR VAD JAG HOPPAS ÅSTADKOMMA:

| topcategory | topcategory | topcategory
middlecategory,middle.. middlecategory,middle.. middlecategory,middle..
------------------------------ -------------------------------- ----------------------------------
| topcategory | topcategory | topcategory
middlecategory,middle.. middlecategory,middle.. middlecategory,middle..
------------------------------ -------------------------------- ----------------------------------
| topcategory | topcategory | topcategory
middlecategory,middle.. middlecategory,middle.. middlecategory,middle..
------------------------------ -------------------------------- ----------------------------------


EXEMPELKOD:

SQL = "SELECT DISTINCT TC.topcategory,MC.middlecategory "&_
"FROM tbtopcategory TC,tbmiddlecategory MC,tbconnectcategory CC "&_
"WHERE TC.topcategoryID = CC.topcategorylink "&_
"AND MC.tbmiddlecategoryID = CC.middlecategorylink " &_
"GROUP BY TC.topcategory ASC"
RS.Open SQL,Conn

AntalKol = 3
Response.Write("<table width='570' border='1'>")

If Not RS.EOF then
Response.Write("</tr>")
Do Until RS.EOF
Response.Write("<tr>")

For i = 1 To AntalKol


If RS.EOF then
Response.Write("<td width='190'>xx</td>")
Else

Response.Write("<td width='190'>")

TopCat = RS("topcategory")
If LastTopCat <> TopCat Then

Response.Write(""&RS("topcategory") &"<br>")
LastTopCat = TopCat
End If

Response.Write(RS("middlecategory") &",")

Response.Write("</td>")

RS.MoveNext

End If

Next
Response.Write("</tr>")
Loop
Response.Write("</table>")
End If

RS.Close
%>

mvh
Torbjörn


Svara

Sv: Jag utvecklar min fråga...

Postades av 2008-02-12 12:08:12 - Torbjörn Karlsson

OK, då frågar jag så här

Är det någon vet om en Array kan vara lösningen.

Något i stil med koden nedan. Denna skriver inte ut något, men visar hur jag tänkt.


<%
SQL = "SELECT DISTINCT TC.topcategory,MC.middlecategory "&_
"FROM tbtopcategory TC,tbmiddlecategory MC,tbconnectcategory CC "&_
"WHERE TC.topcategoryID = CC.topcategorylink "&_
"AND MC.tbmiddlecategoryID = CC.middlecategorylink " '&_
'"ORDER BY TC.topcategory ASC, MC.middlecategory ASC "
RS.Open SQL,Conn
'Set RS = Conn.Execute(SQL)

MiddleCatValues = RS.GetRows(,,Array("middlecategory"))

AntalKol = 3
Response.Write("<table width='570' border='1'>")

If Not RS.EOF then
Response.Write("</tr>")

Do Until RS.EOF
Response.Write("<tr>")
For i = 1 To AntalKol


If RS.EOF then
Response.Write("<td width='190'>xx</td>")

Else

Response.Write("<td width='190'>")

TopCat = RS("topcategory")
If LastTopCat <> TopCat Then
Response.Write(""&RS("topcategory") &"<br>")
LastTopCat = TopCat
End If


For iRowLoop = 0 to UBound(MiddleCatValues, 2)
For iColLoop = 0 to UBound(MiddleCatValues, 1)
Response.Write(MiddleCatValues(iColLoop, iRowLoop))
Next
Response.Write("</td>")
Next


RS.MoveNext

End If

Next

Response.Write("</tr>")

Loop

Response.Write("</table>")
End If

RS.Close
%>


Svara

Nyligen

  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak
  • 16:14 Vem anlitar man egentligen när tak
  • 16:13 Vem anlitar man egentligen när tak
  • 11:52 Noen erfaring med uttak hos Mostbe
  • 11:51 Noen erfaring med uttak hos Mostbe

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 570
27 958
271 741
5 864
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies