/ 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
vælge een af to mulige opslag
Fra : Klaus Ambrass


Dato : 20-08-02 12:06

Hej,

en institution har nul eller een afdeling, jeg vil gerne lave en stored
procedure, som skal give mig een af de to mulige adresser: hvis en
institution har en afdeling, skal den returnere afdelingens adresse,
ellers skal der returneres adresse på institutionen.

På vores SQL2000serv har jeg prøvet noget i denne stil:

SELECT adrID=CASE
WHEN afdeling=0 THEN SELECT tblInst.InstID FROM tblInst
WHEN afdeling>0 THEN SELECT tblAfd.AfdID FROM tblAfd
END
, 'adrAdresse'=CASE
WHEN afdeling=0 THEN SELECT tblInst.InstAdresse FROM tblInst
WHEN afdeling>0 THEN SELECT tblAfd.AfdAdresse FROM tblAfd
END

men jeg kan ikke få det til at fungere, der er hele tiden fejl "near
SELECT". Fedt nok - hvilken SELECT fejler?

Måske skal jeg gribe det helt anderledes an?
--
Klaus Ambrass

IT - Storstrøms Amt
kam@it.stam.dk

 
 
Peter Lykkegaard (20-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 20-08-02 13:24

Som svar på Klaus Ambrass skriblerier:

> På vores SQL2000serv har jeg prøvet noget i denne stil:
>
> SELECT adrID=CASE
> WHEN afdeling=0 THEN SELECT tblInst.InstID FROM tblInst
> WHEN afdeling>0 THEN SELECT tblAfd.AfdID FROM tblAfd
> END
> , 'adrAdresse'=CASE
> WHEN afdeling=0 THEN SELECT tblInst.InstAdresse FROM tblInst
> WHEN afdeling>0 THEN SELECT tblAfd.AfdAdresse FROM tblAfd
> END
>
> men jeg kan ikke få det til at fungere, der er hele tiden fejl "near
> SELECT". Fedt nok - hvilken SELECT fejler?
>
> Måske skal jeg gribe det helt anderledes an?

Jep

SELECT adrID=CASE
WHEN afdeling= 0 THEN tblInst.InstID
ELSE tblAfd.AfdID
END,
adrAdresse=CASE
WHEN afdeling=0 THEN tblInst.InstAdresse
ELSE tblAfd.AfdAdresse
END

mvh/Peter Lykkegaard




Nis Jørgensen (21-08-2002)
Kommentar
Fra : Nis Jørgensen


Dato : 21-08-02 08:26

On Tue, 20 Aug 2002 14:24:01 +0200, "Peter Lykkegaard"
<polonline@hot.mail.com> wrote:

>
>> Måske skal jeg gribe det helt anderledes an?
>
>Jep
>
>SELECT adrID=CASE
> WHEN afdeling= 0 THEN tblInst.InstID
> ELSE tblAfd.AfdID
> END,
> adrAdresse=CASE
> WHEN afdeling=0 THEN tblInst.InstAdresse
> ELSE tblAfd.AfdAdresse
>END

Mangler der ikke lissom en FROM-klaus? I den oprindelige mangler jeg
til gengæld en WHERE ... med mindre tabellerne kun indeholder een
række.

Derudover er

SELECT identifier=Noget

ikke standard SQL-syntax.

Jeg ville nok bruge noget i retning af

SELECT COALESCE(tblAfd.AfdID, tblInst.InstID) AS adrID,
COALESCE(tblAfd.AfdAdresse, tblInst.InstAdresse) AS adrAdresse
FROM tblInst LEFT OUTER JOIN tblAfd ON <indsæt kriterie her>

--
Nis Jørgensen
Amsterdam

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

Peter Lykkegaard (21-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 21-08-02 10:44

Som svar på Nis Jørgensen skriblerier:

> On Tue, 20 Aug 2002 14:24:01 +0200, "Peter Lykkegaard"
> <polonline@hot.mail.com> wrote:
>
[Uafsluttet SQL statement]
>
> Mangler der ikke lissom en FROM-klaus? I den oprindelige mangler jeg
> til gengæld en WHERE ... med mindre tabellerne kun indeholder een
> række.
>
Njahhh, måske nogle punktummer for en uafsluttet Select statement

> Derudover er
>
> SELECT identifier=Noget
>
> ikke standard SQL-syntax.

Jeg bruger det en del på MSSQL
For lissom at lave tilskrivninger på samme måde (læsbarhed)

Ex
Declare @myVar Int
Select @myVar = ID From myTable Where...

>
> Jeg ville nok bruge noget i retning af
>
> SELECT COALESCE(tblAfd.AfdID, tblInst.InstID) AS adrID,
> COALESCE(tblAfd.AfdAdresse, tblInst.InstAdresse) AS adrAdresse
> FROM tblInst LEFT OUTER JOIN tblAfd ON <indsæt kriterie her>
>
Vil ligeledes fungere fint i MSSQL

mvh/Peter Lykkegaard



Klaus Ambrass (21-08-2002)
Kommentar
Fra : Klaus Ambrass


Dato : 21-08-02 13:43

Nis Jørgensen <nis@dkik.dk> wrote in
news:tpf6mu0gtmh0sr70j3ic09s2pajlgvvs3i@4ax.com:

> On Tue, 20 Aug 2002 14:24:01 +0200, "Peter Lykkegaard"
> <polonline@hot.mail.com> wrote:
>
> Derudover er
>
> SELECT identifier=Noget
>
> ikke standard SQL-syntax.
>

Det er rigtigt, og MS SQLsrv skælder da også ud, men laver om på syntaks så
man kan bruge det alligevel.

--
Klaus Ambrass

IT - Storstrøms Amt
kam@it.stam.dk

Peter Lykkegaard (21-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 21-08-02 14:19

Som svar på Klaus Ambrass skriblerier:

> Nis Jørgensen <nis@dkik.dk> wrote in
> news:tpf6mu0gtmh0sr70j3ic09s2pajlgvvs3i@4ax.com:
>
>> Derudover er
>> SELECT identifier=Noget
>> ikke standard SQL-syntax.
>
> Det er rigtigt, og MS SQLsrv skælder da også ud, men laver om på
> syntaks så man kan bruge det alligevel.
>
Øh, I hvilken sammenhæng? (bare nysgerrig
Laver jeg en Create Procedure eller via Query Analyzer eller SQL Scripts og
efterfølgende retter den via Ent Man så er der ingen problems

mvh/Peter Lykkegaard





Klaus Ambrass (22-08-2002)
Kommentar
Fra : Klaus Ambrass


Dato : 22-08-02 08:08

"Peter Lykkegaard" <polonline@hot.mail.com> wrote in
newsM89.59$Jw4.2221@news.get2net.dk:

> Som svar på Klaus Ambrass skriblerier:
>
>> Nis Jørgensen <nis@dkik.dk> wrote in
>> news:tpf6mu0gtmh0sr70j3ic09s2pajlgvvs3i@4ax.com:
>>
>>> Derudover er
>>> SELECT identifier=Noget ikke standard SQL-syntax.
>>
>> Det er rigtigt, og MS SQLsrv skælder da også ud, men laver om på
>> syntaks så man kan bruge det alligevel.
>>
> Øh, I hvilken sammenhæng? (bare nysgerrig
> Laver jeg en Create Procedure eller via Query Analyzer eller SQL
> Scripts og efterfølgende retter den via Ent Man så er der ingen
> problems
>
> mvh/Peter Lykkegaard
>

Jeg sidder - en smule ufikst, indrømmet - og laver SQL i mangement modulet.
Når min SQL ser ok ud, så klipper jeg den over i en stored procedure. Det
er den del af SQL-parseren i Tabel View, som brokker sig over min syntaks,
men retter den til MS-SQL og det virker fint.
Jeg har overvejet at flytte min udvikling til Query Analyzeren, men 99% af
mine queries er for små til at jeg gider starte det helt store værktøj op.


--

Klaus Ambrass
IT - Storstrøms Amt
kam@it.stam.dk

Peter Lykkegaard (22-08-2002)
Kommentar
Fra : Peter Lykkegaard


Dato : 22-08-02 08:26

Som svar på Klaus Ambrass skriblerier:

> "Peter Lykkegaard" <polonline@hot.mail.com> wrote in
> newsM89.59$Jw4.2221@news.get2net.dk:
>
>> Øh, I hvilken sammenhæng? (bare nysgerrig
>> Laver jeg en Create Procedure eller via Query Analyzer eller SQL
>> Scripts og efterfølgende retter den via Ent Man så er der ingen
>> problems
>
> Jeg sidder - en smule ufikst, indrømmet - og laver SQL i mangement
> modulet. Når min SQL ser ok ud, så klipper jeg den over i en stored
> procedure. Det er den del af SQL-parseren i Tabel View, som brokker
> sig over min syntaks, men retter den til MS-SQL og det virker fint.
> Jeg har overvejet at flytte min udvikling til Query Analyzeren, men
> 99% af mine queries er for små til at jeg gider starte det helt store
> værktøj op.
>
Query Analyzeren (QA) giver et mindre footprint en EntMan
Her kan du faktisk få det noget nemmere da M$ har introduceret en object
browser i MSSQL2K's QA
Du højreklikker på fx en tabel og vælger den metode du ønsker (select,
create etc)
Det samme med dine SP's
QA giver dig også en massse fordele mht tweakning af dine statements mv

mvh/Peter Lykkegaard



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste