19. oktober 2001 - 13:50Der 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\"
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.
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.
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
Synes godt om
Ny brugerNybegynder
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.