Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi SQL -> Zwei Spaltenwerte vergleichen (https://www.delphipraxis.net/111719-sql-zwei-spaltenwerte-vergleichen.html)

HolgerCW 8. Apr 2008 11:16


SQL -> Zwei Spaltenwerte vergleichen
 
Hallo zusammen,

wie kann ich in einer SQl - Abfrage zwei Spaltenwerte (Date) vergleichen. Wenn SpalteA grösser oder gleich SpalteB soll '1' ausgegeben werden.

Gruss

Holger

RavenIV 8. Apr 2008 11:29

Re: SQL -> Zwei Spaltenwerte vergleichen
 
Mit Query.FieldByName('...') kommst Du an die Spalten ran.
Oder Query.Fields[x] geht es auch.

Dann kannst Du machen:
if Query.FieldByName('Spalte1').AsInteger < Query.FieldByName('Spalte2').AsInteger then

/edit:
Der Beitrag wäre vermutlich in "Datenbanken" besser aufgehoben.

HolgerCW 8. Apr 2008 11:39

Re: SQL -> Zwei Spaltenwerte vergleichen
 
Vielen dank,

aber ich meinte eigentlich eine Abfrage in einer SQL-Abfrage ...

Gruss

Holger

NormanNG 8. Apr 2008 11:41

Re: SQL -> Zwei Spaltenwerte vergleichen
 
Hi,

in einer SQL-Abfrage würde ich entweder den nativen Datum-Typ verwenden und direkt vergleichen.
Oder einen String aus dem Datum aufbauen nach dem Muster "YYYYMMDD" - den kann man dann auch vergleichen...

HolgerCW 8. Apr 2008 11:48

Re: SQL -> Zwei Spaltenwerte vergleichen
 
OK,

nur wie wird in SQL verglichen. Mit welchem Befehl ?

NormanNG 8. Apr 2008 11:54

Re: SQL -> Zwei Spaltenwerte vergleichen
 
z.B. MSSQL
SQL-Code:
select case when Date1 >= Date2 then 1 else 0 end

HolgerCW 8. Apr 2008 12:20

Re: SQL -> Zwei Spaltenwerte vergleichen
 
Das klappt noch nicht ganz. Da ich ja direkt in der SQL-ABfrage die Spalten der Tabelle vergleichen möchte.

Muss da nicht irgendwo noch ein FROM rein ?

So sieht es zur Zeit aus:

Delphi-Quellcode:
SELECT VAM.DATE_MASTERDATA, VAM.DATE_CONFIGDATA, VAM.DATE_UPDATE, VAM.DATE_LASTCONNECT, VAM.DATE_GPRSCONNECT, VAM.USERID,

(SELECT CASE WHEN VAM.DATE_LASTCONNECT > VAM.DATE_GPRSCONNECT THEN '' ELSE 'P' END) AS GPRS

FROM ST_VAM VAM

Gruss

Holger

mkinzler 8. Apr 2008 12:23

Re: SQL -> Zwei Spaltenwerte vergleichen
 
Zitat:

Muss da nicht irgendwo noch ein FROM rein ?
Natürlich
SQL-Code:
select case when Date1 >= Date2 then 1 else 0 end as <Feldname> from <tabelle>;

NormanNG 8. Apr 2008 12:24

Re: SQL -> Zwei Spaltenwerte vergleichen
 
Natürlich, das war doch nur ein Codefragment...


SQL-Code:
SELECT
  VAM.DATE_MASTERDATA,
  VAM.DATE_CONFIGDATA,
  VAM.DATE_UPDATE,
  VAM.DATE_LASTCONNECT,
  VAM.DATE_GPRSCONNECT,
  VAM.USERID,
  (CASE WHEN VAM.DATE_LASTCONNECT > VAM.DATE_GPRSCONNECT THEN '' ELSE 'P' END) AS GPRS
FROM ST_VAM VAM

HolgerCW 8. Apr 2008 12:30

Re: SQL -> Zwei Spaltenwerte vergleichen
 
Alles klar,

kam einfach nicht drauf das select weg zu lassen.

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz