05. december 2001 - 10:18
Der er
45 kommentarer og 2 løsninger
Join SQL
Hmm hvad går der galt her: strSQL = \"SELECT Count(sleevs.ID) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato\" strSQL = strSQL & \"FROM kategorier LEFT JOIN sleevs ON kategorier.katid = sleevs.kategori\" strSQL = strSQL & \"GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;\" Set rs4 = Connect.Execute(strSQL) Fejlen er: Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\' [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression \'kategorier.datoFROM kategorier LEFT JOIN sleevs ON kategorier.katid = sleevs.kategoriGROUP BY kategorier.katid\'. sleevs.asp, line 311 linie 311 er der hvor SQLen køreres
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
05. december 2001 - 10:20
#1
du mangler noen spaces i din SQL: strSQL = \"SELECT Count(sleevs.ID) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato\" strSQL = strSQL & \" FROM kategorier LEFT JOIN sleevs ON kategorier.katid = sleevs.kategori\" strSQL = strSQL & \" GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;\" /nute
05. december 2001 - 10:20
#2
der mangler et mellemrum før FROM og igen ved GROUP BY:: strSQL = \"SELECT Count(sleevs.ID) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato\" strSQL = strSQL & \" FROM kategorier LEFT JOIN sleevs ON kategorier.katid = sleevs.kategori\" strSQL = strSQL & \" GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;\"
05. december 2001 - 10:20
#3
hmmm...to hoder tenker likt på samme tid...nice, så er vi iallefall enige :)
05. december 2001 - 10:22
#4
Det hjalp en del nu er fejlen kun: Microsoft OLE DB Provider for ODBC Drivers error \'80004005\' [Microsoft][ODBC Microsoft Access Driver] Type mismatch in expression.
05. december 2001 - 10:26
#5
denne bit: kategorier.katid = sleevs.kategori er begge kolonner av typen nummer ??
05. december 2001 - 10:28
#6
kategorier.katid er katid tal sleevs.kategori er kategori tekst
05. december 2001 - 10:30
#7
Du kan ikke join tal og tekst. Har du i sleevs en kolonne med tal for katergorien ? Eller har du i kategorier en kolonne katergori (tekst) ?
05. december 2001 - 10:31
#8
så kan du ikke joine på dem...de *skal* være av samme type. har du ikke en nummerert ID på dine kategorier i tabellen \'sleevs\' ??
05. december 2001 - 10:33
#9
jo ID på sleevs
05. december 2001 - 10:36
#10
prøv så denne: strSQL = \"SELECT Count(sleevs.ID) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato\" strSQL = strSQL & \" FROM kategorier LEFT JOIN sleevs ON kategorier.katid = sleevs.ID\" strSQL = strSQL & \" GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;\"
05. december 2001 - 10:38
#11
Den ID du har i sleevs, er den lig med katergorien? eller er den ID for en record i sleevs? Du vil joine dine to tabeller hvor katergori er ens i de to tabeller. Typist har man: Kategorier: katID : autonumber (tal) kategorinavn : tekst -- Sleevs: sleevID : autonummer (tal) <---- jeg gætter på det er den du kalder ID katID : tal <-------- du har kategori : tekst
05. december 2001 - 10:40
#12
Nix det er ID ikke øv.. Hvordan kan man så lave en count for at vise hvor mange links der er i kategorien
05. december 2001 - 10:42
#13
har du kategorier en kolonne med tekst for kategorien??? så kan du evt lave join sådan her: LEFT JOIN sleevs ON kategorier.kategori = sleevs.kategori
05. december 2001 - 10:42
#14
ved å designe dine databaser normalt ;-)
05. december 2001 - 10:45
#15
hmmm....det er rimelig dyrt å joine på tekst...
05. december 2001 - 10:49
#16
Jeg tror jeg kan bruge dette men hvordan ? Cast( feltnavn as float) CAST and CONVERT (T-SQL) Explicitly converts an expression of one data type to another. CAST and CONVERT provide similar functionality.
05. december 2001 - 10:49
#17
Ja det er rigtigt. Det vil være smartere at gemme katID i sleevs istedet for katergori (tekst).
05. december 2001 - 10:51
#18
?? hvad indeholder din sleevs.kategori biler huse eller et tal for kategorien gemt i et tekst felt??
05. december 2001 - 10:55
#19
tal ( i et tekst felt ) sorry
05. december 2001 - 10:59
#20
bobbedude >> hvis vi prøver å oversette din SQL til plain dansk (eller norsk) så kan vi kanskje kaste litt annet lys over saken. jeg tillater meg å forenkle den en smule, så er det lettere å eksemplifisere: SELECT * FROM kategorier LEFT JOIN sleevs ON kategorier.katid = sleevs.kategori Det du ønsker er følgende: SELECT * FROM kategorier : hent alle kolonner fra tabell kategori LEFT JOIN sleevs : hent alle kolonner fra tabellen sleevs ON kategorier.katid = sleevs.kategori: hvor kolonnen \'kategorier.katid\' har samme verdi som kolonnen \'sleevs.kategori\'. For at denne siste del i det hele tatt skal ha noe for seg, så kreves det at det er en relasjon mellom kolonnene. som eagleeye skriver @ 05/12 2001 10:38:46 så skal/bør kategorier.katid være fremmednøkkel til sleevs primærnøkkel. dette er basal relasjonell database modellering. hvis det ikke er noe relasjon mellom de kolonner du prøver å matche på, så er det ikke noe poeng i å joine tabellene...
05. december 2001 - 11:03
#21
Kategorier.katid og sleevs.kategori Er de samme tal det der er forskellen er at Kategorier.katid katid = tal og sleevs.kategori kategori = tekst.
05. december 2001 - 11:04
#22
så gjør din \'sleevs.kategori\' om til en kolonne av typen tall. det er den mest fornuftige måten å løse ditt problem på...
05. december 2001 - 11:08
#23
men med Cast og Convert kan man da lave et tekst felt om til tal ??
05. december 2001 - 11:13
#24
UHA...jeg er ikke sikker på CAST eller CONVERT ting, men jeg mener \'TO_NUMBER\' er en standard konverterings prosedyre i SQL... prøv dette: strSQL = strSQL & \" FROM kategorier LEFT JOIN sleevs ON kategorier.katid = TO_NUMBER(sleevs.kategori)\"
05. december 2001 - 11:16
#25
TO_NUMBER giver denne fejl:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'
[Microsoft][ODBC Microsoft Access Driver] Undefined function \'TO_NUMBER\' in expression.
her er en forklaring på cast og convert.
http://www.asp101.com/samples/var_types.asp?strInput=10
05. december 2001 - 11:17
#26
men når du er nødt til å konvertere en kolonne, skal du tenke på at du for en stund tilbake i tid har du tatt en *rimelig* hårreisende beslutning. jeg vil heller foreslå å endre kolonne typen fra tekst til tall...
05. december 2001 - 11:21
#27
yeps det er jeg klar over men jeg ønsker ikke lige nu at lave dette felt til tal..
05. december 2001 - 11:21
#28
det var ingenting i den artikkel som fortalte at den omhandlet hverken cast eller convert... den omhandlet convertering av VBScripts datatype variant til en spesifikk datatype. det har ingenting med SQL å gjøre...
05. december 2001 - 11:23
#29
hvorfor \'ønsker ikke lige nu at lave dette felt til tal\' ??? du skaper da kun problemer for deg selv ved å la den være som tekst !! jeg skal la være med å foreslå å endre til tall hvis fu gir meg én god grunn til at du ikke vil endre den ;-)
05. december 2001 - 11:24
#30
den eneste grund er at jeg så skulle til at ændre en ret stor del sider, men det ender nok med at jeg må til det aligevel
05. december 2001 - 11:31
#31
Men jeg tror lige jeg vil kikke lidt mere på CONVERT
05. december 2001 - 11:33
#32
well...jeg er glad jeg ikke skal leke med dine databaser.... hva så med denne: strSQL = strSQL & \" FROM kategorier LEFT JOIN sleevs ON kategorier.katid = CONVERT(number,sleevs.kategori)\" men etter hva jeg kan se av dokumentasjonen jeg leser, så er faktisk ikke konvertering fra tekst til tall tillatt... jeg tror den eneste mulighet er å endre dine scripts...
05. december 2001 - 12:24
#33
Hmmm Havd indeholder sleevs.katergori ????? et tal eller bogstaver? LEFT JOIN sleevs ON kategorier.katid = CInt(sleevs.kategori)
05. december 2001 - 12:26
#34
eagleeye >> sleevs.katergori er tekst
05. december 2001 - 12:27
#35
Ja men et eks på den tekst... er det: 1, 2, 4 eller Aviser, TvBlade, ...
05. december 2001 - 12:30
#36
eagleeye >> konvertering mellom text til numeric kolonner er ikke tillatt.
05. december 2001 - 12:37
#37
1 - 2 - 3 - 4 osv.
05. december 2001 - 12:39
#38
bobbedude >> hvis du er sikker på at det kun er tall (ingen spaces eller noen andre tegn), så fungerer det som eagleeye har postet
05. december 2001 - 12:40
#39
eagleeye >> strSQL = strSQL & \"FROM kategorier LEFT JOIN sleevs ON kategorier.katid = CInt(sleevs.kategori) \" Giver fejlen: Microsoft OLE DB Provider for ODBC Drivers error \'80040e10\' [Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
05. december 2001 - 12:41
#40
nute >> der er ingen mellem rum eller special tegn
05. december 2001 - 12:44
#41
bobbedude >> du er også nødt til å selecte den kolonnen du joiner på...legg \'sleevs.kategori\' inn i din SELECT: strSQL = \"SELECT Count(sleevs.ID) AS CountOflink, sleevs.kategori ...
05. december 2001 - 12:44
#42
Hvis jeg skriver SQLen ud ser den sådan ud : SELECT Count(links.ID) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato FROM kategorier LEFT JOIN sleevs ON kategorier.katid = CInt(sleevs.kategori) GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;
05. december 2001 - 12:52
#43
den laver ikke fejl nu ! Men den siger der er 0 i alle kategorier.
05. december 2001 - 12:55
#44
Ups SQLen er her: strSQL = \"SELECT Count(sleevs.kategori) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato \" strSQL = strSQL & \"FROM kategorier LEFT JOIN sleevs ON kategorier.katid = CInt(sleevs.kategori) \" strSQL = strSQL & \"GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;\" Set rs4 = Connect.Execute(strSQL)
05. december 2001 - 13:01
#45
du har heller ikke gjort det jeg ba deg om...du skal ikke COUNT\'e sleevs.kategori !! strSQL = \"SELECT Count(sleevs.ID) AS CountOflink, sleevs.kategori, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato \"
05. december 2001 - 13:02
#46
Ups SQLen er her: strSQL = \"SELECT Count(sleevs.kategori) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato \" strSQL = strSQL & \"FROM kategorier LEFT JOIN sleevs ON kategorier.katid = CInt(sleevs.kategori) \" strSQL = strSQL & \"GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;\" Set rs4 = Connect.Execute(strSQL)
05. december 2001 - 13:02
#47
Forkert her er den rigtige strSQL = \"SELECT Count(sleevs.ID) AS CountOflink, kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato \" strSQL = strSQL & \"FROM kategorier LEFT JOIN sleevs ON kategorier.katid = CInt(sleevs.kategori) \" strSQL = strSQL & \"GROUP BY kategorier.katid, kategorier.katoverskrift, kategorier.adresse, kategorier.telefon, kategorier.fax, kategorier.email, kategorier.konperson1, kategorier.konperson2, kategorier.konperson3, kategorier.konperson4, kategorier.konperson5, kategorier.konperson6, kategorier.konperson7, kategorier.konperson8, kategorier.katbeskrivelse, kategorier.oprettetaf, kategorier.dato;\" Set rs4 = Connect.Execute(strSQL)
Kurser inden for grundlæggende programmering