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


Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-21 17:59:00 - Adam Sjölund, i forum asp - allmänt, Tråden har 13 Kommentarer och lästs av 504 personer

Jag har en fråga om hur man enklast omväxlande skriver ut poster från 2 tabeller.

Så här har jag tänkt mig:

Företag 1
-Person 1
-Person 2
-Person 3

Företag 2
-Person 4
-Person 5
-Person 6

Alltså: Jag har en tabell med företagsinformationen och en tabell med
informationen om varje person. Dessa tabeller är "ihopkopplade" med
foretagID.
Min fråga är hur jag ska göra för att få det att fungera. Har försökt med
att använda mig av 2 RecordSet, men inte lyckats. Är mycket tacksam för hjälp och exempel!

//Adam


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-21 18:52:45 - Andreas Hillqvist

Snabbis:

Set rsCompany = <<<öppna alla företag i ett recordset>>>

Do until rsCompany.Eof
<<<Skriv Ut företag>>>

rsPerson.Open "SELECT * FROM <<<PersonTabellen>>> WHERE FöretagsID=" & rsCompany("FöretagsID"), conn

Do until rsPerson.Eof
<<<Skriv Ut Person>>>

rsPerson.MoveNext
Loop
rsPerson.Close

rsCompany.MoveNext
Loop


(Korrigerat inre loop från:"rsCompany.MoveNext" till:"rsPerson.MoveNext")


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-21 19:00:44 - David Wallin

jag har funderat länge på detta! har ännu inte riktigt löst det men på en del sidor passar det att göra ett recordset och sedan jämföra företagsid.

improvisera med detta:

SQL-satsen: SELECT * FROM foretag, person WHERE foretag.foretagID=person.foretag

loopa sedan alla poster i rs och kolla om foretagID är samma för aktuellt och föregående foretagID. om det är det skrivs personnamnet ut under aktuellt företagsnamn, annars skrivs företagsnamnet ut...

det blev lite konstigt här men vitsen är att man får en sql-slagning i stället för "konsum".

Min skivlista på: http://purjo.com/purjo/skivor/list_release.asp är skriven med ett rs. artistID jämförs med föregående och avgör då om artistnamnet ska skrivas ut.

/ David


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-22 09:25:12 - Adam Sjölund

Tack för hjälpen, jag ska se om jag kan få det att fungera under dagen...
/Adam


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-22 09:38:55 - Adam Sjölund

Tack för hjälpen... Jag fick det att fungera nu. Är väldigt tacksam!

//Adam


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-22 12:20:13 - David Wallin

no problem!

/ David


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-23 00:34:03 - Andreas Hillqvist

Tror han använde mitt exempel.

;O)

Varför använder du inte en INNER eller LEFT Join? Skulle jag gjort istället för att använda mig av en CROSS JOIN med ett whare wilkor. Vet inte om det påverkar prestanden. Men det borde det göra.


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-24 00:29:15 - David Wallin

Jaha... Nåja... :-)
När det gäller join är jag helt ute i skogen... Hur göra och varför?

/ David


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-24 02:33:18 - Andreas Hillqvist

JOINS är ju mycket Enkelt. Låt oss ta en INNER JOIN först. Ger samma resultat som din fråga:

strSQL = "SELECT * FROM foretag INNER JOIN person ON foretag.foretagID = person.foretag"

I princip har jag bara ersatt komma tecknet med "INNER JOIN" och "WHERE" med "ON". Är inte svårare än så.

Vill man ha alla poster från foretag. Även de som saknar person. Skriver man en "LEFT JOIN"

strSQL = "SELECT * FROM foretag LEFT JOIN person ON foretag.foretagID = person.foretag"

Resultatet är innehåller alla poster som en "INNER JOIN" skulle ge. Plus de företag som saknar personer. För dessa poster är fälten från persson null.

Detta kan man använda fär att t.ex söka efter företag som saknar personer:

strSQL = "SELECT * FROM foretag LEFT JOIN person ON foretag.foretagID = person.foretag WHERE person.foretag Is Null"


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-24 09:30:24 - David Wallin

Får man ut alla företag och personer trots att man bara skriver FROM foretag alltså?

Jag har konsulterat SQL-boken också så det börjar klarna lite...
Jag hittar inget om varför JOIN är snabbare än WHERE, hur funkar det?

/ David


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-24 09:31:33 - David Wallin

Oj, det står ju "INNER JOIN person"...
Jag hajar... :-)

Men prestandan då?

/ David


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-24 12:19:07 - Andreas Hillqvist

Inner Join kanske inte skiljer något prestanda mässigt från en Cross Join (Heter så när man separerar tabellerna med , ) med where sats. Men jag tycker att det lättare syns vad frågan gör och fungerar.

Får erkänna att jag i början aldrig skrev en enda joinfråga. Använd frågemotorn i Access. Men lärde mig syntaxet för Joins. Det är inte så svårt.

Om man vill använda mer än två tabeller så skiljer sig access från SQL server. I access måste du omge en join utrycken med parantes. Behöver man inte i SQL server.

KAn skrivas på två olika sätt:

SELECT *
FROM (Customers
INNER JOIN Orders ON Customers.CustomerId = Orders.OrderCustomer)
INNER JOIN Details ON Orders.OrderId = Details.DetailOrder

SELECT *
FROM Customers
INNER JOIN (Orders INNER JOIN Details ON Orders.OrderId = Details.DetailOrder)
ON Customers.CustomerId = Orders.OrderCustomer


Svara

Sv: Skriva ut poster omväxlande från 2 tabeller

Postades av 2002-03-31 15:39:50 - Jimmie Pettersson

Om du använder Access så använd frågor. De anropas precis som vanligt, typ SELECT * From Frågan
Så du behöver inte ens använda "avancerad" sql utan kan anropa det direkt och låta accessdatabasen göra jobbet. Du kan förstås göra det i SQL också, Access fråga kan visas i SQL Format, sen är det bara Copy-Paste så är det klart...

MVH Jimmie Pettersson


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 838
27 960
271 761
750
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