webForumDet fria alternativet
Logga in / Bli medlem

Join å sådant

Databaser & SQL

12 svar · 302 visningar · startad av Nickemannen

Medlem sedan aug. 20003 575 inlägg
Trådstart#1

Jag har en tabell där jag har ne massa enkäter och en som säger om den är klar eller påbörjad.

Men jag vill lista alla som inte är påbörjade och då finns det inget i tabellen klar.

Tabellerna:

Klar:
kid
eid ' anketens id
aid ' vilket id personen har det kan jag lägga till sedan
status ' vilken status den har har inte med denna sats att göra
slutkommentarer

Anketer
eid ' anketen
datum
kurs 'anket namnet

såhär långt kom jag

strSql = "Select enkat.kurs,enkat.eid From enkat,klar where not enkat.eid = klar.eid"
Set Rs = objConn.Execute(strSql)

Då får jag upp alla fält i enkater och alla fält i klar jag vill bara ha ut de fält som finns i enkater som inte finns i klar.

Medlem sedan dec. 200012 464 inlägg
#2
strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid where klar.eid is null"
Set Rs = objConn.Execute(strSql)
Medlem sedan aug. 20003 575 inlägg
#3

Tack!!!
Fungerade perfekt

Medlem sedan aug. 20003 575 inlägg
#4

strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid where klar.eid is null"

Det har dykt upp ett litet problem med den koden du gav mig LarsG.

Vi har flera användare i våran databas. Om en användare svarar och gör klart en tabell så blir den ju automatiskt klar för alla.

i Klar har vi ett fält som heter aid (användarid) och i en session("id") har vi id:t för användaren jag har testat.

strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid where klar.eid is null or not klar.eid = "&session("id")&""

Och då blir det fel då kan man ha flera avklarade och ändå så ligger alla kvar i klar. ?

Medlem sedan dec. 20003 887 inlägg
#5

Tro om du ska ha:

strSql = "Select enkat.kurs,enkat.eid From enkat left join klar on enkat.eid = klar.eid" & _
  " where klar.eid is null or not klar.[b]aid[/b] = "&session("id")&""
Medlem sedan aug. 20003 575 inlägg
#6

Oj, jag skrev visst fel. Menda att jag skrev klar.aid och inte klar.eid.

Alltså mitt fel återstår fortfarande.

Medlem sedan dec. 200012 464 inlägg
#7
strSql = "Select enkat.kurs,enkat.eid " & _
" From enkat left join klar " & _ 
" on enkat.eid = klar.eid " & _
" and klar.aid = " & session("id") & _
" where klar.eid is null
Medlem sedan aug. 20003 575 inlägg
#8

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Join expression not supported.

Medlem sedan aug. 20003 575 inlägg
#9

Antar att det är så att accses databaser inte fungerar. Vi har en sådan dära göra ett intranet i skolan och jag har fått se hjälpa alla... Men denna fråga blir alltid fel.

Medlem sedan jan. 20032 285 inlägg
#10
strSql = "Select enkat.kurs,enkat.eid " & _
" From enkat left [b]outer[/b] join klar " & _ 
" on enkat.eid = klar.eid " & _
" and klar.aid = " & session("id") & _
" where klar.eid is null"
Medlem sedan aug. 20003 575 inlägg
#11

fortfarande

Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Join expression not supported.

Medlem sedan dec. 200012 464 inlägg
#12

Access är ju lite speciellt krävande, det brukar ofta hjälpa att lägga till parenteser omkring uttryck.

strSql = "Select enkat.kurs,enkat.eid " & _
" From enkat left outer join klar " & _ 
" on (enkat.eid = klar.eid " & _
" and klar.aid = " & session("id") & _
" ) where klar.eid is null"
Medlem sedan aug. 20003 575 inlägg
#13

Tackar fungerar utmärkt.

Jag har aldrig stött på sådana här avancerade Sql strängar så jag köpte mig en bok igår.

Men tack så hemskt mycket

Normalt så räcker det ju med lätta JOIN strängar.

och jag som trodde jag kunde det mesta :(

264 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)