Обсуждение: SQL-Statement
Hello all, I have the problem that I must create an Querry witch looks like: --snip-- SELECT * FROM Hauptantrag WHERE (select datenfeldname from datenexport) > (select datum_von from datenexport) AND (selectdatenfeldname from datenexport) < (select datenexport.datum_bis from datenexport) limit 10; --snap-- The statement (select datenfeldname from datenexport) means an fieldname witch is saved in the relation datenexport. In thisrelation is only one record saved and contains the fields datenfeldname, datum_von and datum_bis. Can I do something like this? Have I an syntax problem? By executing I become 0 results. Can someone please educate me... Thanks a lot Markus -- Markus Espenhain Fon: +49 (7 11) 48 90 83 - 0 ETES - EDV-Systemhaus GbR Fax: +49 (7 11) 48 90 83 - 50 Libanonstrasse 58 A * D-70184 Stuttgart Web: http://www.etes.de
> SELECT * FROM Hauptantrag WHERE (select datenfeldname from datenexport) > > (select datum_von from datenexport) AND (select datenfeldname from > datenexport) < (select datenexport.datum_bis from datenexport) limit 10; It is not correct. You have not defined the condition between hauptantrag & datenexport tables. Forward the table structures for assistance. regards, bhuvaneswaran
Quoth Markus Espenhain <espenhain@etes.de>:
> SELECT * FROM Hauptantrag WHERE (select datenfeldname from
> datenexport) > (select datum_von from datenexport) AND (select
> datenfeldname from datenexport) < (select datenexport.datum_bis from
> datenexport) limit 10;
If I understand you right, you want to compare some column from
Hauptantrag to a range of values (datum_bis < 'some column' < datum_von),
but you don't know what the column will be ahead of time.
I believe this requires a dynamic sql statement, such as the plpython
command 'execute':
rv = plpy.execute(
"SELECT * FROM Hauptantrag WHERE %s > %f AND %s < %f"
% (colname, datum_von, datum_bis),
10)
If you can, it's probably best to rework the logic of your code to
avoid having to test unknown columns.
--
colin | perfection is reached, not when there is no longer anything to add,
roald | but when there is no longer anything to take away.
(antoine de saint-exupery)