Avatar billede dk_akj Nybegynder
19. oktober 2001 - 13:50 Der er 9 kommentarer og
3 løsninger

computed Select

Hejsa

Sidder lige og bøvler med at lave et computet felt.

Hvad er syntaxen ??
Jeg prøver:
SELECT DISTINCT \"FDS_MAIN\".\"FDS\" WHERE \"FDS_MAIN\".\"TYPE\" = 4 AS TYPEFOUR;
Og alle afskygninger deraf.
Jeg får hele tiden en \"ORA-00936 missing expression\"

Hvad er der galt ??


Hvad er der galt

Avatar billede ehf Nybegynder
19. oktober 2001 - 13:57 #1
Mangler du ikke en from clause?

/ehf
Avatar billede dk_akj Nybegynder
19. oktober 2001 - 14:01 #2
Nej jeg havde bare ikke fået det hele med (sorry)

SELECT DISTINCT \"FDS_MAIN\".\"FDS\" FROM \"FDS_MAIN\" WHERE \"FDS_MAIN\".\"TYPE\" = 4 AS TYPEFOUR;

Anders
Avatar billede ehf Nybegynder
19. oktober 2001 - 14:04 #3
Hvad med
select distinct fds
  from fds_main
where type = 4;

/ehf
Avatar billede teepee Nybegynder
19. oktober 2001 - 14:09 #4
Hvis AS TYPEFOUR betyder at du vil have at den selecterede kolonne skal hedde dette så kan

select distinct fds_main.fds Typefour
  from fds_main
where type = 4;

måske bruges...
Avatar billede dk_akj Nybegynder
19. oktober 2001 - 14:10 #5
Nope

For at alle forstår problemmet så er dette hvad jeg prøver
Select \"A\".\"c1\"
,\"B\".\"c4\",\"C\".\"c5\" FROM \"A\",\"B\",\"C\"
Avatar billede dk_akj Nybegynder
19. oktober 2001 - 14:10 #6
SHIT der komer mere om lidt !!
Man kan ikke bruge tabs her !!

Avatar billede ehf Nybegynder
19. oktober 2001 - 14:14 #7
Jeg er ikke helt med på hvorfor du bruger \" om det hele?
Avatar billede dk_akj Nybegynder
19. oktober 2001 - 14:14 #8
Select \"A\".\"c1\",\"B\".\"c2\",\"C\".\"c4\", SELECT DISTINCT \"D\".\"c7\" FROM \"D\" WHERE \"D\".\"c2\" = 4 AS TYPEFOUR;
FROM \"A\",\"B\",\"C\" where ...resten af whereclause.

Anders
Avatar billede dk_akj Nybegynder
19. oktober 2001 - 14:15 #9
jeg programmerer i PowerBuilder, når man bruger den til at lave sql\'er med bruger den quotes, så det gør jeg også.
Avatar billede dk_akj Nybegynder
19. oktober 2001 - 14:17 #10
Teeppee - dit svar 19/10 2001 14:09:40  virker desværre ikke
Avatar billede driften.dk Nybegynder
22. oktober 2001 - 14:54 #11
Der er nogle grundlæggende ting, der vist lige skal på plads.

Et computet felt baseret på et SQL udtryk må først og fremmet KUN få EEN række, så
SELECT DISTINCT \"D\".\"c7\" FROM \"D\" WHERE \"D\".\"c2\" = 4
må altså kun give een række.
Derudover skal den være i paranteser, da Orassle ellers ikke fatter en brik af hvad der foregår:
(SELECT DISTINCT \"D\".\"c7\" FROM \"D\" WHERE \"D\".\"c2\" = 4) as TYPEFOUR

Der må IKKE være semicolon efter TYPEFOUR, for det er ikke her det totale SQL udtryk afsluttes. Hvis Orassle ellers arter sig pænt burde du have succes med:
Select \"A\".\"c1\",
      \"B\".\"c2\",
      \"C\".\"c4\",
      (SELECT DISTINCT \"D\".\"c7\"
      FROM \"D\"
      WHERE \"D\".\"c2\" = 4) AS TYPEFOUR
FROM \"A\",\"B\",\"C\" where ...resten af whereclause ;

Det store spørgsmål til slut er, om du bruger en version af Orasssssle, der understøtter SQL udtryk i SELECT udtrykket, hvilket er version 8.1.7 og opefter.
Avatar billede dk_akj Nybegynder
23. oktober 2001 - 10:49 #12
Jeg bruger 7.3 !!
Jeg har dog fundet en workaround.

Dette erprincippet i det.
select sysdate,p from dual, (select count(*) as p from dual t);

Anders
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