SPinckneyMedlem sedan juli 2002104 inlägg
Tjena,
Jag har 2 tabeller.
tblflags
flagid - flagvalue
flagid = int
flagvalue = varchar
tblusers
username - userflag
username = varchar
userflag=int
Nu vill jag skriva ut userns flagvalue.
Så har tex en user tblusers.userflag= 2
och tblflags.flagid = 2 är värdet tblflags.flagvalue= Administrator
sql = "Select * from tblusers inner join tblflags on tblusers.userflag = tblflags.flagvalue where tblflags.flagid = tblusers.userflag"
Får felet
Syntax error converting the varchar value 'Globaladmin' to a column of data type int.
skymanMedlem sedan juli 20011 347 inlägg
Du jämför en int mot en varchar...
tblusers.userflag = tblflags.flagvalue
LarsGMedlem sedan dec. 200012 465 inlägg
Det hänger inte ihop. Jag ser inget globaladmin i din kod.
Jag förstår inte din join heller, borde det inte räcka med
sql = "Select * from tblusers inner join tblflags on tblusers.userflag = tblflags.flagid "
SPinckneyMedlem sedan juli 2002104 inlägg
sql = "Select * from tblusers inner join tblflags on tblusers.userflag = tblflags.flagid
Detta skriver bara ut värdet "3"
Värdet "3" är globaladmin.
Det är definerat i tblflags.flagvalue
Jag får ju ut att användaren har värdet 3 som flagga men sen vill jag jämföra det värdet med tabellen tblflags.flagid och skriva ut tblflags.flagvalue som i detta fallet är "Globaladmin"

SPinckneyMedlem sedan juli 2002104 inlägg
LarsGMedlem sedan dec. 200012 465 inlägg
Jag förstår nog inte problemet riktigt. I vilket läge får du felmeddelandet?
Kod borde väl se ut så här ungefär
username = "'" & replace(request.form("username"),"'","''") & "'"
sql = "Select * from tblusers inner join tblflags on tblusers.userflag = tblflags.flagid where username = & username
set rs = connect.execute(sql)
if not rs.eof
response.write "Användaren " & rs("username") " har " & rs("flagvalue") & "<br>"
else
response.write "Okänd användare <br>"
end if
SPinckneyMedlem sedan juli 2002104 inlägg
Det va inte riktigt så jag ville ha det. Det är ju samma Sql Query som min.
Om du kollar på denna bild så förstår du vad jag menar.
Detta blir resultatet av
sql = "Select * from tblusers inner join tblflags on tblusers.userflag = tblflags.flagid order by username ASC"

Jag vill ju att det ska stå Globaladmin under "userlevel" istället för "3"
LarsGMedlem sedan dec. 200012 465 inlägg
Hur ser den koden som skriver den bilden ut?
SPinckneyMedlem sedan juli 2002104 inlägg
Det fungerade med det du sa. Bara jag som hade klantat mig på en grej. Men jag gjorde ändå om queryn eftersom jag har markets också.
sql = "Select tblMarkets.marketName, tblusers.*,tblFlags.FlagValue from (tblusers left join tblflags on tblusers.userflag = tblflags.flagid) left join tblmarkets on tblUsers.userMarket= tblMarkets.marketid order by username ASC"
Sen gjorde jag en Left join om nån skulle ta bort en market.
och använder mig av
Do until Rsusers.EOF
strMarket = rsusers("marketName")
strLevel = rsusers ("flagvalue")
if strMarket = "" or isnull (strmarket) then
strMarket = "UNKNOWN"
end if
if strLevel = "" or isnull(strLevel) then
strLevel = "UNKNOWN"
end if
Tack!