/ 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
SQL "betinget" forespørgsel
Fra : Jørn Andersen


Dato : 18-04-01 18:04

Hej,

Jeg har en tabel, hvor jeg bl.a. har flterne [titelID], [pris],
[tilbud] (ja/nej) og [tilbudspris].
Der er altså både oplysninger om pris og tilbudspris. Hvilken, der
gælder, bestemmes af ja/nej-feltet [tilbud].

Hvis jeg nu ønsker at definere en AktuelPris som enten [pris] eller
[tilbudspris] afhængigt af om ja/nej-feltet [tilbud] er sat eller ej,
hvordan gør man så det med SQL? (Hvis det kan lade sig gøre!)

Det skal bruges til ASP, så jeg kunne selvfølgelig udtrække det hele
og så lave noget if - then - else, men hvis det kunne gøres direkte i
SQL'en, ville det være noget lettere - og sikkert også spare
ressourcer - til glæde for alle

På forhånd tak,

Mvh. Jørn


XFUT: dk.edb.database,

--
Jørn Andersen
Brønshøj

 
 
Nils Lastein (18-04-2001)
Kommentar
Fra : Nils Lastein


Dato : 18-04-01 20:26

"Jørn Andersen" <jorn.a@email.dk> wrote in message
news:zMjdOmUodWItaY2x8G==eoFi2Boq@4ax.com...
> Jeg har en tabel, hvor jeg bl.a. har flterne [titelID], [pris],
> [tilbud] (ja/nej) og [tilbudspris].
> Der er altså både oplysninger om pris og tilbudspris. Hvilken, der
> gælder, bestemmes af ja/nej-feltet [tilbud].
>
> Hvis jeg nu ønsker at definere en AktuelPris som enten [pris] eller
> [tilbudspris] afhængigt af om ja/nej-feltet [tilbud] er sat eller ej,
> hvordan gør man så det med SQL? (Hvis det kan lade sig gøre!)

Hvis jeg tilbud er "nej" er tilbudspris vel NULL og dermed kan du tillade
sig, at adderer tilbudspris og pris uanset hvilken situationer du er havnet
i?

Nils

--
netikette & citatteknik: http://www.usenet.dk/netikette/



Martin Højriis Krist~ (18-04-2001)
Kommentar
Fra : Martin Højriis Krist~


Dato : 18-04-01 20:21

"Nils Lastein" <nila@dsr.kvl.dk> skrev i en meddelelse
news:AMlD6.47633$o4.3876757@news010.worldonline.dk...
> Hvis jeg tilbud er "nej" er tilbudspris vel NULL og dermed kan du tillade
> sig, at adderer tilbudspris og pris uanset hvilken situationer du er
havnet
> i?

Hvis tilbud er "ja" og der både står en pris og tilbudspris så vil prisen jo
blive for høj.

--
Med Venlig Hilsen

Martin Højriis Kristensen
Svar bedes baseret på RFC1855
Jeg repræsenterer med denne udtalelse mig selv og ikke TDC Internet



Jørn Andersen (18-04-2001)
Kommentar
Fra : Jørn Andersen


Dato : 18-04-01 20:47

On Wed, 18 Apr 2001 21:25:31 +0200, "Nils Lastein" <nila@dsr.kvl.dk>
wrote:

Hej Niels,

>Hvis jeg tilbud er "nej" er tilbudspris vel NULL og dermed kan du tillade
>sig, at adderer tilbudspris og pris uanset hvilken situationer du er havnet
>i?

Nej, tanken var, at man kan have tilbudspriser stående, og så aktivere
dem efter behov.
Desuden: Hvis titlen er på tilbud, så vil der jo både være en
normalpris og en tilbudspris, og at lægge dem sammen til AktuelPris
vil nok ikke gøre kunderne tilfredse

Mvh. Jørn


Kristian Damm Jensen (24-04-2001)
Kommentar
Fra : Kristian Damm Jensen


Dato : 24-04-01 09:18

Nils Lastein wrote:
>
> "Jørn Andersen" <jorn.a@email.dk> wrote in message
> news:zMjdOmUodWItaY2x8G==eoFi2Boq@4ax.com...
> > Jeg har en tabel, hvor jeg bl.a. har flterne [titelID], [pris],
> > [tilbud] (ja/nej) og [tilbudspris].
> > Der er altså både oplysninger om pris og tilbudspris. Hvilken, der
> > gælder, bestemmes af ja/nej-feltet [tilbud].
> >
> > Hvis jeg nu ønsker at definere en AktuelPris som enten [pris] eller
> > [tilbudspris] afhængigt af om ja/nej-feltet [tilbud] er sat eller ej,
> > hvordan gør man så det med SQL? (Hvis det kan lade sig gøre!)
>
> Hvis jeg tilbud er "nej" er tilbudspris vel NULL og dermed kan du tillade
> sig, at adderer tilbudspris og pris uanset hvilken situationer du er havnet
> i?

Gys. Aldrig, aldrig lave beregninger på felter, der *kan* være NULL.

5+NULL = NULL !

I temmelig mange systemer. Den slags skal man passe på med.

Til gengæld har de fleste systemer også en funktion i stil med isnull(X,
V), der returnerer V, hvis X er NULL.

--
Kristian Damm Jensen | Feed the hungry. Go to
kristian-damm.jensen@capgemini.dk | http://www.thehungersite.com


Jakob Nilsson (18-04-2001)
Kommentar
Fra : Jakob Nilsson


Dato : 18-04-01 21:52

> Jeg har en tabel, hvor jeg bl.a. har flterne [titelID], [pris],
> [tilbud] (ja/nej) og [tilbudspris].
> Der er altså både oplysninger om pris og tilbudspris. Hvilken, der
> gælder, bestemmes af ja/nej-feltet [tilbud].
>
> Hvis jeg nu ønsker at definere en AktuelPris som enten [pris] eller
> [tilbudspris] afhængigt af om ja/nej-feltet [tilbud] er sat eller ej,
> hvordan gør man så det med SQL? (Hvis det kan lade sig gøre!)
>

Er det noget i stil med dette du leder efter:

SELECT AktuelPris =
CASE Tilbud
WHEN 'Ja' THEN Tilbudspris
WHEN 'Nej' THEN Pris
END
FROM TableName

Mvh.
- Jakob



Peter Lykkegaard (19-04-2001)
Kommentar
Fra : Peter Lykkegaard


Dato : 19-04-01 14:49


"Jakob Nilsson" <jakobnilsson@hotmail.com> wrote in message
news:n7nD6.47737$o4.3886521@news010.worldonline.dk...
> > Jeg har en tabel, hvor jeg bl.a. har flterne [titelID], [pris],
> > [tilbud] (ja/nej) og [tilbudspris].
> > Der er altså både oplysninger om pris og tilbudspris. Hvilken, der
> > gælder, bestemmes af ja/nej-feltet [tilbud].
> >
> > Hvis jeg nu ønsker at definere en AktuelPris som enten [pris] eller
> > [tilbudspris] afhængigt af om ja/nej-feltet [tilbud] er sat eller ej,
> > hvordan gør man så det med SQL? (Hvis det kan lade sig gøre!)
> >
>
> Er det noget i stil med dette du leder efter:
>
> SELECT AktuelPris =
> CASE Tilbud
> WHEN 'Ja' THEN Tilbudspris
> WHEN 'Nej' THEN Pris
> END
> FROM TableName
>
Hvis det er MSSQL Jørn arbejder med så er du tæt på
Jeg ville foretrække

SELECT AktuelPris =
CASE Tilbud
WHEN 'Ja' THEN Tilbudspris
ELSE Pris
END
FROM TableName

Men det er vel smag og behag
NB Konstruktionen virker kun med MSSQL

mvh/Peter Lykkegaard



Jakob Nilsson (19-04-2001)
Kommentar
Fra : Jakob Nilsson


Dato : 19-04-01 18:15


"Peter Lykkegaard" <polonline@hot.mail.com> wrote in message
news:1ZBD6.1298$Em3.7251@news.get2net.dk...
>
> Hvis det er MSSQL Jørn arbejder med så er du tæt på
> Jeg ville foretrække

IMHO er jeg dead-on
Jeg undlod ELSE af "pædagogiske" årsager men jeg giver dig helt ret i at det
er den "pæneste" måde at strukturere sit statement på.

> NB Konstruktionen virker kun med MSSQL

Du har ret i at jeg burde have nævnt at eksemplet bygger på T-SQL og som
sådan kun virker under SQL Server (og Sybase).

For øvrigt mener jeg at der i SQL-99 er support for Control-of-Flow
statements som IF..THEN..ELSE og CASE - men jeg er ikke 100 % sikker.

Mvh.
- Jakob





Jørn Andersen (20-04-2001)
Kommentar
Fra : Jørn Andersen


Dato : 20-04-01 00:31

On Thu, 19 Apr 2001 15:48:32 +0200, "Peter Lykkegaard"
<polonline@hot.mail.com> wrote:

>Hvis det er MSSQL Jørn arbejder med så er du tæt på

Desværre er det MS Access97 - ellers tak for hjælpen (til jer begge).

Jeg landede foreløbig på at udtrække hele RS og så lave if - then -
else bagefter. Så må jeg få optimeret senere.

Mvh. Jørn


Nis Jørgensen (21-04-2001)
Kommentar
Fra : Nis Jørgensen


Dato : 21-04-01 12:00

On Fri, 20 Apr 2001 01:31:06 +0200, Jørn Andersen <jorn.a@email.dk> wrote:

>On Thu, 19 Apr 2001 15:48:32 +0200, "Peter Lykkegaard"
><polonline@hot.mail.com> wrote:
>
>>Hvis det er MSSQL Jørn arbejder med så er du tæt på
>
>Desværre er det MS Access97 - ellers tak for hjælpen (til jer begge).

I Access kan du bruge:

SELECT Iif(Tilbud,Tilbudspris,Pris) As AktuelPris
FROM TableName


--
Med venlige hilsner

Nis Jørgensen, Albertslund

Actual code behavior may differ from intended.

Jørn Andersen (21-04-2001)
Kommentar
Fra : Jørn Andersen


Dato : 21-04-01 14:54

On Sat, 21 Apr 2001 12:59:58 +0200, Nis Jørgensen <nis@dkik.dk> wrote:

Hej Nis,

>I Access kan du bruge:
>
>SELECT Iif(Tilbud,Tilbudspris,Pris) As AktuelPris
>FROM TableName

Tak - det var lige den, jeg skulle bruge (tror jeg nok - jeg har kun
lige lavet en lyntest, da jeg skal ud af døren.

Mvh. Jørn

--
Jørn Andersen
Brønshøj

Kim Brandt Jensen /L~ (19-04-2001)
Kommentar
Fra : Kim Brandt Jensen /L~


Dato : 19-04-01 13:13

jorn.a@email.dk,Ny-Internet writes:
>Hej,
>
>Jeg har en tabel, hvor jeg bl.a. har flterne [titelID], [pris],
>[tilbud] (ja/nej) og [tilbudspris].

>Der er altså både oplysninger om pris og tilbudspris. Hvilken, der
>gælder, bestemmes af ja/nej-feltet [tilbud].
>
>Hvis jeg nu ønsker at definere en AktuelPris som enten [pris] eller
>[tilbudspris] afhængigt af om ja/nej-feltet [tilbud] er sat eller ej,
>hvordan gør man så det med SQL? (Hvis det kan lade sig gøre!)

Hvis du vil gøre det i ren sql kan du bruge en union sætning:

Select Pris as aktuelpris from tabel
where titelid = @aktuelid and
tilbud = 'nej'
Union
Select Tilbudspris as aktuelpris from tabel
where titelid = @aktuelid and
tilbud = 'ja'

Med venlig hilsen

Kim Brandt Jensen


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

Månedens bedste
Årets bedste
Sidste års bedste