Re: Select mit IF

From: Christa Kurschat (christa_kurschat_nospam_at_web.de)
Date: 11/08/04


Date: Mon, 8 Nov 2004 14:33:43 +0100

Hallo Timm,

TR <timm.riemer@wegener-datentechnik.de> schrieb:

> Hi Jürgen;
>
> ich möchte das der Parameter nur zur Ausgabe auf Erledigt
> gesetzt wird wenn er NULL ist ansonsten soll er den Wert
> ausgeben den er gerade hat.
> So das habe ich auch soweit getan mit folgendem select(im
> letzten select ist die case Anweisung):
> select
> tkdauf.name1, tkdauf.Statustext AS Status , '' AS RStatus,
> EINSATZ.Techniker, TKDAUF.BEMERKUNG,
> DATEPART(hour, (einsatz.ende - einsatz.beginn)) AS Stunden,
> DATEPART(minute, (einsatz.ende - einsatz.beginn)) as Minuten,
> Cast ((einsatz.einsatzdatum) as Datetime) as Einsatzdatum,
> einsatz.ende, einsatz.beginn, einsatz.memo, convert
> (char(10),einsatz.einsatzdatum,104) as datum,
> DATEPART(hour, einsatz.pause) AS PauStunden, DATEPART(minute,
> einsatz.pause) as PauMinuten, Cast ((tkdauf.aufannahme1)as
> Datetime) as aufannahme1,
> EINSATZ.BKNZARBZEIT as BerechKZ
> from
> tkdauf, einsatz
> where
> tkdauf.lfdnr *= einsatz.auflfdnr
>
> union all
>
> select
> archiv.name1, 'Erledigt' AS Status, '' AS RStatus,
> AEINSATZ.Techniker, ARCHIV.BEMERKUNG,
> DATEPART(hour, (aeinsatz.ende - aeinsatz.beginn)) AS Stunden,
> DATEPART(minute, (aeinsatz.ende - aeinsatz.beginn)) as Minuten,
> Cast ((aeinsatz.einsatzdatum)as DATETIME) as Einsatzdatum,
> aeinsatz.ende, aeinsatz.beginn, aeinsatz.memo, convert
> (char(10),aeinsatz.einsatzdatum,104) as datum,
> DATEPART(hour, aeinsatz.pause) AS PauStunden, DATEPART(minute,
> aeinsatz.pause) as PauMinuten, Cast ((archiv.aufannahme1)as
> Datetime) as aufannahme1,
> AEINSATZ.BKNZARBZEIT as BerechKZ
> from
> archiv, aeinsatz
> where
> archiv.lfdnr = aeinsatz.auflfdnr
>
> union all
>
> select '' AS name1, '' AS Status, case when
> isnull(TKDAUF.STATUSTEXT,'') = ''
> then 'erledigt'else TKDAUF.STATUSTEXT end AS RSTATUS, '' AS
> Techniker, '' AS Bemerkung, '' AS Stunden, '' AS Minuten,
> '' AS Einsatzdatum, '' AS ende, '' AS beginn, '' AS memo, ''
> AS datum, '' AS PauStunden, '' AS PauMinuten, '' AS
> aufannahme1, '' AS BerechKZ
> from
> tkdauf, einsatz
> where
> tkdauf.lfdnr *= einsatz.auflfdnr
>
>
> So aber nun bekomme ich keinen Wert zurück, sondern nur wenn
> alle Daten durch sind bekomme ich einmal alle Werte der Spalte
> RSTATUS zurück. Das sieht wie folgt aus:
[...]

genau das sagst Du ihm doch auch ;-)

Du mußt das Case-Konstrukt in Deine 1. Abfrage einbauen:
tkdauf.name1, tkdauf.Statustext AS Status ,
case when
isnull(TKDAUF.STATUSTEXT,'') = ''
then 'erledigt'else TKDAUF.STATUSTEXT end AS RSTATUS,
EINSATZ.Techniker, TKDAUF.BEMERKUNG,
DATEPART(hour, (einsatz.ende - einsatz.beginn)) AS Stunden,
DATEPART(minute, (einsatz.ende - einsatz.beginn)) as Minuten,
Cast ((einsatz.einsatzdatum) as Datetime) as Einsatzdatum,
einsatz.ende, einsatz.beginn, einsatz.memo, convert
(char(10),einsatz.einsatzdatum,104) as datum,
DATEPART(hour, einsatz.pause) AS PauStunden, DATEPART(minute,
einsatz.pause) as PauMinuten, Cast ((tkdauf.aufannahme1)as
Datetime) as aufannahme1,
EINSATZ.BKNZARBZEIT as BerechKZ
from
tkdauf, einsatz
where
tkdauf.lfdnr *= einsatz.auflfdnr

Jetzt sollte der Text genau zum DS angezeigt werden.

Gruß
Christa

-- 
Access-FAQ:        http://www.donkarl.com
SQL-Server-FAQ: http://www.berndjungbluth.de/sqlfaq/sqlfaq.htm
auch interessant: http://www.insidesql.de
Suchen in den Newsgroups:
http://groups.google.de/advanced_group_search?hl=de&lr=&ie=UTF-8


Relevant Pages

  • Re: DateTime, variants and double
    ... SQL Server stores them as paired integers - see BOL ... The table has a field of type DateTime which for various reasons I ... SELECT CAST AS FLOAT) ... This email account is my spam trap so I ...
    (microsoft.public.data.ado)
  • Re: IF Klausel
    ... > So habe folgenden Select erstellt: ... > Cast as Datetime) as Einsatzdatum, ...
    (microsoft.public.de.sqlserver)
  • Re: DateTime, variants and double
    ... The table has a field of type DateTime which for various reasons I ... SELECT CAST AS FLOAT) ... btw I'm using SQL Server 2000 and VC++ 6 ... This email account is my spam trap so I ...
    (microsoft.public.data.ado)
  • Re: Convert.ToDateTime
    ... and you will need the cast (or the conversion) in order for the code ... If you know that the 16th field is a DateTime, ... or a string which represents a date? ...
    (microsoft.public.dotnet.languages.csharp)
  • ATL OLEDB Consumer Templates, SQL CE
    ... I am receiving a string by doing: ... CString str = cmd.GetValue; for getting a string from column 1 ... I am not sure what kind of cast I have ... to do to access a "datetime" field. ...
    (microsoft.public.sqlserver.ce)