AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Abfrage als SQL-Statement
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage als SQL-Statement

Ein Thema von HolgerCW · begonnen am 30. Jul 2007 · letzter Beitrag vom 1. Aug 2007
Antwort Antwort
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#1

Abfrage als SQL-Statement

  Alt 30. Jul 2007, 10:01
Datenbank: ORACLE • Version: 9 • Zugriff über: DATABASE
Hallo zusammen,

kriegt es hier jemand hin sowas:

Delphi-Quellcode:
if Query['DRUCKLITERPRODUKT'] = 'PS x Vthen
begin
 if (Query['PS_X'] >= Query['KATART1V']) AND (Query['PS_X'] <= Query['KATART2V']) then Query['KATEGORIE_X'] := 'Art.3, Abs.3';
 if (Query['PS_X'] >= Query['KAT11V']) AND (Query['PS_X'] <= Query['KAT12V']) then Query['KATEGORIE_X'] := 'I';
 if (Query['PS_X'] >= Query['KAT21V']) AND (Query['PS_X'] <= Query['KAT22V']) then Query['KATEGORIE_X'] := 'II';
 if (Query['PS_X'] >= Query['KAT31V']) AND (Query['PS_X'] <= Query['KAT32V']) then Query['KATEGORIE_X'] := 'III';
 if (Query['PS_X'] >= Query['KAT41V']) AND (Query['PS_X'] <= Query['KAT42V']) then Query['KATEGORIE_X'] := 'IV';
end
else
begin
 if (Query['PS_X'] >= Query['KATART1DN']) AND (Query['PS_X'] <= Query['KATART2DN']) then Query['KATEGORIE_X'] := 'Art.3, Abs.3';
 if (Query['PS_X'] >= Query['KAT11DN']) AND (Query['PS_X'] <= Query['KAT12DN']) then Query['KATEGORIE_X'] := 'I';
 if (Query['PS_X'] >= Query['KAT21DN']) AND (Query['PS_X'] <= Query['KAT22DN']) then Query['KATEGORIE_X'] := 'II';
 if (Query['PS_X'] >= Query['KAT31DN']) AND (Query['PS_X'] <= Query['KAT32DN']) then Query['KATEGORIE_X'] := 'III';
 if (Query['PS_X'] >= Query['KAT41DN']) AND (Query['PS_X'] <= Query['KAT42DN']) then Query['KATEGORIE_X'] := 'IV';
end;
in ein SELECT einer SQL-Abfrage einzubinden ?

Gruss

Holger
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Abfrage als SQL-Statement

  Alt 30. Jul 2007, 10:02
Oracle sollte Derived Tables unterstützen.

select ... from (select ...) where ...;
Markus Kinzler
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#3

Re: Abfrage als SQL-Statement

  Alt 30. Jul 2007, 10:11
OK,

und wie mache ich das mit den grösser/gleich - Abfragen ?

Gruss

Holger
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Abfrage als SQL-Statement

  Alt 30. Jul 2007, 10:31
In der where Bedingung der äußeren Abfrage.
Markus Kinzler
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#5

Re: Abfrage als SQL-Statement

  Alt 30. Jul 2007, 11:10
Hi,

habe mir hier mal eine kleine Version gebastelt. Jetzt kommt die Fehlermeldung: 'Zu viele Werte'

Delphi-Quellcode:
SELECT SYSDBP.DBP_LEISTUNGSWERTE.ANLAGENNUMMER, SYSDBP.DBP_LEISTUNGSWERTE.DRUCKSTUFE DS, SYSDBP.DBP_LEISTUNGSWERTE.VOLUMENNENNWEITE VN,

(SELECT KATEGORIE, MIN_DN, MAX_DN FROM SYSDBP.DBP_KATEGORIE
WHERE MIN_DN >= (DS * VN) AND MAX_DN <= (DS * VN))

FROM SYSDBP.DBP_LEISTUNGSWERTE
WHERE ANLAGENNUMMER = 4000003734
Was ist falsch ?

Gruss

Holger
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Abfrage als SQL-Statement

  Alt 30. Jul 2007, 22:51
Hallo HolgerCW,

vielleicht so...
SQL-Code:
SELECT
  CASE WHEN druckliterprodukt = 'PS x V
    THEN
      CASE
        WHEN ps_x >= katart1v AND ps_x <= katart2v THEN 'Art.3, Abs.3'
        WHEN ps_x >= kat11v AND ps_x <= kat12v THEN 'I'
        WHEN ps_x >= kat21v AND ps_x <= kat22v THEN 'II'
        WHEN ps_x >= kat31v AND ps_x <= kat32v THEN 'III'
        WHEN ps_x >= kat41v AND ps_x <= kat42v THEN 'IV'
      END
    ELSE
      CASE
        WHEN ps_x >= katart1dn AND ps_x <= katart2dn THEN 'Art.3, Abs.3'
        WHEN ps_x >= kat11dn AND ps_x <= kat12dn THEN 'I'
        WHEN ps_x >= kat21dn AND ps_x <= kat22dn THEN 'II'
        WHEN ps_x >= kat31dn AND ps_x <= kat32dn THEN 'III'
        WHEN ps_x >= kat41dn AND ps_x <= kat42dn THEN 'IV'
      END
  END AS kategorie_x
FROM tabelle
Gruss
Thorsten
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#7

Re: Abfrage als SQL-Statement

  Alt 31. Jul 2007, 08:21
Ja fantastsich,

das klappt.

Danke und Gruss

Holger
  Mit Zitat antworten Zitat
HolgerCW

Registriert seit: 28. Nov 2006
Ort: Marl
1.207 Beiträge
 
Delphi XE7 Enterprise
 
#8

Re: Abfrage als SQL-Statement

  Alt 1. Aug 2007, 08:58
Hallo nochmal,

wie kann ich den Code erweitern, das
sowas raus kommt:

Delphi-Quellcode:
SELECT
  CASE WHEN druckliterprodukt = 'PS x V
    THEN
      CASE
        WHEN ps_x >= katart1v AND ps_x <= katart2v THEN kategorie_x = 'Art.3, Abs.3AND Kategorie_y = 'BlaBla'
        WHEN ps_x >= kat11v AND ps_x <= kat12v THEN kategorie_x = 'IAND Kategorie_y = 'BlaBla2'
      END
    ELSE
      CASE
        WHEN ps_x >= katart1dn AND ps_x <= katart2dn THEN kategorie_x = 'Art.3, Abs.3AND Kategorie_y = 'BlaBla'
        WHEN ps_x >= kat11dn AND ps_x <= kat12dn THEN kategorie_x = 'IAND Kategorie_y = 'BlaBla
      END
  END AS kategorie_x, Kategorie_y
FROM tabelle
So wie oben wird es nicht klappen. Ich hoffe nur das Du weisst, was ich meine.

Gruss

Holger
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 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