Avatar billede axkris Nybegynder
26. august 2005 - 17:08 Der er 16 kommentarer og
1 løsning

Min første UNION

Hej alle

Den siger: "Incorrect syntax near the keyword 'SELECT'."

Jeg forsøger at finde antallet af annoncører, dvs. medlemmer, som har en eller flere af de to annonce-typer: "BANNER" og "ANNONCE".

SELECT COUNT
  (
  SELECT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_BANNER
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_BANNER.MemberID
  )
  UNION
  (
  SELECT DISTINCT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_ANNONCE
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_ANNONCE.MEMBER_ID
  )
AS COUNTER

Hver af select-sætningerne virker i sig selv, men ikke sammen i union-sætningen.
Avatar billede arne_v Ekspert
26. august 2005 - 17:11 #1
hvad vil du ?

(
  SELECT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_BANNER
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_BANNER.MemberID
  )
  UNION
  (
  SELECT DISTINCT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_ANNONCE
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_ANNONCE.MEMBER_ID
  )

burde være valid syntax
Avatar billede bromer Nybegynder
26. august 2005 - 17:14 #2
Man behøver vel ikke parenteser omkring ens SQL sætninger?
Avatar billede axkris Nybegynder
26. august 2005 - 17:15 #3
Ja, den virker unden count, men jeg skal tælle antallet af annoncører. Og det skal den finde ud af ved at undersøge om de har et "BANNER" eller en "ANNONCE". Jeg har brug for union'en, fordi medlemmerne godt kan have både et "BANNER" og en "ANNONCE". Jeg skal altså komme gengangerne til livs, så jeg får det reelle antal.
Avatar billede axkris Nybegynder
26. august 2005 - 17:16 #4
unden = uden
Avatar billede arne_v Ekspert
26. august 2005 - 17:17 #5


SELECT COUNT(*) AS COUNTER FROM
  (
  SELECT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_BANNER
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_BANNER.MemberID
  )
  UNION
  (
  SELECT DISTINCT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_ANNONCE
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_ANNONCE.MEMBER_ID
  )

måske
Avatar billede arne_v Ekspert
26. august 2005 - 17:18 #6
bromer>

nej parenteserne er sikkert optinal men jeg bruger dem altid ved UNION
for at gøre det mere tydeligt
Avatar billede bromer Nybegynder
26. august 2005 - 17:18 #7
arne_v: roger
Avatar billede axkris Nybegynder
26. august 2005 - 17:18 #8
Jeg kan desværre ikke teste mine untion-sætninger i Enterprise. Den brokker sig.

The Query Designer does not support the UNION SQL construct.
Avatar billede axkris Nybegynder
26. august 2005 - 17:18 #9
Takker, prøver dit forslag 17:17:14
Avatar billede bromer Nybegynder
26. august 2005 - 17:19 #10
"Query Designer".. hmm... når jeg en sjælden gang benytter MS SQL så mindes jeg at SQL Analyzer primært er hvad den skal være.. en klient der var sender og viser.. prøv med den..
Avatar billede axkris Nybegynder
26. august 2005 - 17:22 #11
Incorrect syntax near the keyword 'UNION' ved 17:17:14
Avatar billede arne_v Ekspert
26. august 2005 - 17:24 #12
prøv:

SELECT COUNT(*) AS COUNTER FROM
  ((
  SELECT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_BANNER
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_BANNER.MemberID
  )
  UNION
  (
  SELECT DISTINCT FORUM_MEMBERS.MEMBER_ID
    FROM FORUM_MEMBERS INNER JOIN PLUSPROFIL_ANNONCE
    ON FORUM_MEMBERS.MEMBER_ID = PLUSPROFIL_ANNONCE.MEMBER_ID
  )) U
Avatar billede axkris Nybegynder
26. august 2005 - 17:27 #13
Virker - takker - tryk svar :-)
Avatar billede arne_v Ekspert
26. august 2005 - 17:29 #14
svar
Avatar billede bromer Nybegynder
26. august 2005 - 17:31 #15
vini vidi vici
Avatar billede arne_v Ekspert
26. august 2005 - 17:35 #16
og det betyder (i den her sammenhæng altså) ?
Avatar billede bromer Nybegynder
26. august 2005 - 17:45 #17
vel ikke så meget.. det kan man vel altid skrive når nogen får løst deres problem :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester