/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Oracle -> Access
Fra : Thassman


Dato : 25-01-03 17:10

Hej NG

hvem kan hjælpe med at oversætte følgende sql som virker perfekt mod en
Oracle9i til noget Access2000 kan forstå ?

SELECT p.picid, count(c.pictureid) as "comments", m.alias, m.memberid as
"ID"
FROM picture p
LEFT JOIN picturecomment c
ON p.picid = c.pictureid
LEFT JOIN members m
ON p.picbyid = m.memberid
group by p.picid, m.alias, m.memberid
ORDER BY p.picid ASC
;

Jeg får følgende fejl, når jeg forsøger at lave en forespørgsel, enten
direkte fra access eller fra en ASP side.
Syntax error (missing operator) in query expression 'p.picid = c.pictureid
LEFT JOIN members m ON p.picbyid = m.memberid'.

Mvh

Tommy





 
 
Jens Gyldenkærne Cla~ (25-01-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 25-01-03 23:54

Thassman skrev:

> SELECT p.picid, count(c.pictureid) as "comments", m.alias,
> m.memberid as "ID"

Prøv at fjerne anførselstegnene om dine aliasser.

Jeg kan ikke umiddelbart se nogen fejl i sætningen, men der kan
måske være bøvl med anførselstegn.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

Thassman (26-01-2003)
Kommentar
Fra : Thassman


Dato : 26-01-03 04:05

>
> Prøv at fjerne anførselstegnene om dine aliasser.
>

Jeg har nu forsøgt med nedenstående, helt uden alias:

SELECT p.picid, count(c.pictureid), m.alias, m.memberid
FROM picture p
LEFT JOIN picturecomment c
ON p.picid = c.pictureid
LEFT JOIN members m
ON p.picbyid = m.memberid
group by p.picid, m.alias, m.memberid
ORDER BY p.picid ASC
;

Det giver samme fejlmeddelse.
Flere ideer jeg kan afprøve ?

/Tommy



Mads Lie Jensen (26-01-2003)
Kommentar
Fra : Mads Lie Jensen


Dato : 26-01-03 09:33

On Sun, 26 Jan 2003 04:04:43 +0100, "Thassman" <Thassman@jubiipost.dk>
wrote:

>Jeg har nu forsøgt med nedenstående, helt uden alias:
>
>SELECT p.picid, count(c.pictureid), m.alias, m.memberid
>FROM picture p
>LEFT JOIN picturecomment c
>ON p.picid = c.pictureid
>LEFT JOIN members m
>ON p.picbyid = m.memberid
>group by p.picid, m.alias, m.memberid
>ORDER BY p.picid ASC
>;
>
>Det giver samme fejlmeddelse.
>Flere ideer jeg kan afprøve ?

Access er ret glad for paranteser - jeg kan se den indsætter massevis af
paranteser når man bygger forespørgsler i den.
Prøv med:

SELECT p.picid, count(c.pictureid), m.alias, m.memberid
FROM ( picture p
LEFT JOIN picturecomment c
ON p.picid = c.pictureid )
LEFT JOIN members m
ON p.picbyid = m.memberid
group by p.picid, m.alias, m.memberid
ORDER BY p.picid ASC;

(Jeg aner ikke om det hjælper eller har noget at sige - men hvis jeg
bruger hvis jeg i Access går ind under forespørgsler og bygger en ny via
peg-og-klik så sætter den paranteser sådan - og det kunne jo være der
var en grund til det...)

--
Mads Lie Jensen - mads@gartneriet.dk - ICQ #25478403
http://www.gartneriet.dk
Lær af andres fejl
- du lever alligevel ikke længe nok til selv at prøve dem alle.

Thassman (26-01-2003)
Kommentar
Fra : Thassman


Dato : 26-01-03 16:12

> Access er ret glad for paranteser - jeg kan se den indsætter massevis af
> paranteser når man bygger forespørgsler i den.

Jeg har nu forsøgt med indsatte paranteser og helt fjernet alias.
Det hjalp lidt (nu fik jeg da lov til at save min forespørgsel)
Men får fejlen "type mismatch in expression" ved udførsel.
Min sql sætning ser nu således ud:

SELECT [picture].[picid], count([picturecomment].[pictureid]),
[members].[alias], [members].[memberid]
FROM (picture LEFT JOIN picturecomment ON
[picture].[picid]=[picturecomment].[pictureid]) LEFT JOIN members ON
[picture].[picbyid]=[members].[memberid]
GROUP BY [picture].[picid], [members].[alias], [members].[memberid]
ORDER BY [picture].[picid];


det skal lige siges, at hvis jeg helt fjerner det andet LEFT JOIN så virker
det (bortset fra at jeg så mangler noget info i resultatet)
Jeg har forsøgt med paranteser på diverse forskellige måder, men åbenbart
ikke den rigtige ?

mvh
Tommy



Nis Jorgensen (29-01-2003)
Kommentar
Fra : Nis Jorgensen


Dato : 29-01-03 14:25

On Sun, 26 Jan 2003 16:12:00 +0100, "Thassman" <Thassman@jubiipost.dk>
wrote:

>
>Jeg har nu forsøgt med indsatte paranteser og helt fjernet alias.
>Det hjalp lidt (nu fik jeg da lov til at save min forespørgsel)
>Men får fejlen "type mismatch in expression" ved udførsel.
>Min sql sætning ser nu således ud:
>
>SELECT [picture].[picid], count([picturecomment].[pictureid]),
>[members].[alias], [members].[memberid]
>FROM (picture LEFT JOIN picturecomment ON
>[picture].[picid]=[picturecomment].[pictureid]) LEFT JOIN members ON
>[picture].[picbyid]=[members].[memberid]
>GROUP BY [picture].[picid], [members].[alias], [members].[memberid]
>ORDER BY [picture].[picid];

Det lyder som om du er kommet over din syntax-fejl. Har
picture.picbyid og members.memberid samme datatype?

--
Nis Jørgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Th (29-01-2003)
Kommentar
Fra : Th


Dato : 29-01-03 15:08


"Nis Jorgensen" <nis@dkik.dk> wrote in message
news:6elf3v4nv5ponl37603ra5n08vll396itt@4ax.com...
>
> Det lyder som om du er kommet over din syntax-fejl. Har
> picture.picbyid og members.memberid samme datatype?

Bingo, picbyid var af typen text. Skulle selvfølgelig være et heltal. Jeg
havde stiret mig totalt blind på syntax. En rigtig flovmand

Tak til NG for de gode svar

/Tommy




Jimmy (26-01-2003)
Kommentar
Fra : Jimmy


Dato : 26-01-03 10:37


"Thassman" <Thassman@jubiipost.dk> wrote in message
news:3e33504b$0$210$edfadb0f@dread16.news.tele.dk...
> >
> > Prøv at fjerne anførselstegnene om dine aliasser.
> >
>
> Jeg har nu forsøgt med nedenstående, helt uden alias:

Det er da ikke uden aliaser, f.eks. "FROM picture p"

Forsøg at fjerne alle aliaser og se hvilken fejl du får.

Mvh
Jimmy



Jimmy (26-01-2003)
Kommentar
Fra : Jimmy


Dato : 26-01-03 00:17


"Thassman" <Thassman@jubiipost.dk> wrote in message
news:3e32b6d5$0$195$edfadb0f@dread16.news.tele.dk...
> Hej NG
>
> hvem kan hjælpe med at oversætte følgende sql som virker perfekt mod en
> Oracle9i til noget Access2000 kan forstå ?
>
> SELECT p.picid, count(c.pictureid) as "comments", m.alias, m.memberid as
> "ID"
> FROM picture p
> LEFT JOIN picturecomment c
> ON p.picid = c.pictureid
> LEFT JOIN members m
> ON p.picbyid = m.memberid
> group by p.picid, m.alias, m.memberid
> ORDER BY p.picid ASC
> ;
>
> Jeg får følgende fejl, når jeg forsøger at lave en forespørgsel, enten
> direkte fra access eller fra en ASP side.
> Syntax error (missing operator) in query expression 'p.picid = c.pictureid
> LEFT JOIN members m ON p.picbyid = m.memberid'.


Forsøg at lade være med at anvende aliaser overhovedet.
Får du så samme fejl?

Mvh
Jimmy



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408522
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste