Subject | Re: [firebird-support] Metadata about views |
---|---|
Author | Thomas Beckmann |
Post date | 2014-04-07T09:43:28Z |
Maybe, I've completly mistaken the original question, but isn't
select
r.RDB$VIEW_SOURCE
from RDB$RELATIONS r
where r.RDB$VIEW_SOURCE is not null
simply returning the underlying query - with every field?
Am 07.04.2014 11:32, schrieb Svein Erling Tysvær:
Mit freundlichen Grüßen,
Thomas Beckmann
Diplom-Informatiker
Wielandstraße 14c • 23558 Lübeck
Tel +49 (22 25) 91 34 - 545 • Fax +49 (22 25) 91 34 - 604
Mail thomas.beckmann@... <mailto:thomas.beckmann@...>
ASSFINET-Logo
*ASSFINET Dienstleistungs-GmbH*
Max-Planck-Straße 14 • 53501 Grafschaft bei Bonn
info@... <mailto:info@...> • www.assfinet.de
<http://www.assfinet.de/>
Geschäftsführer: Dipl. Wirtschaftsinformatiker Marc Rindermann
Registergericht Koblenz HRB 23331
Diese E-Mail enthält vertrauliche Informationen. Wenn Sie nicht der
richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben,
informieren Sie bitte sofort den Absender und vernichten Sie diese Mail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist
nicht gestattet.
select
r.RDB$VIEW_SOURCE
from RDB$RELATIONS r
where r.RDB$VIEW_SOURCE is not null
simply returning the underlying query - with every field?
Am 07.04.2014 11:32, schrieb Svein Erling Tysvær:
>--
>
>>CREATE OR ALTER VIEW SALDO_UMOWY(
>> ID_UMOWY,
>> SALDO)
>>AS
>>SELECT faktury.id_umowy AS id_umowy, IIF((SELECT EXTRACT(YEAR FROM
>>umowy.data_podpisania) FROM umowy WHERE
>>umowy.id_umowy=faktury.id_umowy)<=2010, (SELECT
>>SUM(COALESCE(faktury.brutto-umowy.kwota_fn,0)) FROM faktury WHERE
>>faktury.id_umowy=faktury.id_umowy), (SELECT
>>SUM(COALESCE(faktury.netto-umowy.kwota_fn,0)) FROM faktury WHERE
>>faktury.id_umowy=faktury.id_umowy)) AS saldo FROM faktury, umowy
>
> Isn't the select above (if it at all works) just a 'complification' of
>
> SELECT f.id_umowy, SUM(IIF(u.data_podpisania < '1.1.2011', f.brutto,
> f.netto)-u.kwota_fn)
> FROM faktury f
> JOIN umowy u on f.id_umowy = u.id_umowy
> GROUP BY 1
>
>>FROM rdb$dependencies d
>>LEFT JOIN rdb$relation_fields r ON d.rdb$dependent_name =
> r.rdb$relation_name
>> AND d.rdb$field_name = r.rdb$base_field
>>WHERE r.rdb$system_flag = 0
>> AND d.rdb$dependent_type = 1 --VIEW
>>ORDER BY r.rdb$field_position
>>
>>The query returns information about the fields that are in the view
>>but returns only the fields that are in the table,
>>when the field is a function that is not returned as a change to be
>>returned or fields that are a function of how SALDO
>
> I'm not certain whether I understand your question or not, but if you're
> asking why your query doesn't return information about SALDO, then my
> answer is that it is because SALDO is not in rdb$dependencies and that
> you should rewrite your from clause to something like:
>
> FROM rdb$relations r
> JOIN rdb$relation_fields rf on r.rdb$relation_name = rf.rdb$relation_name
> JOIN rdb$fields c ON rf.rdb$field_source = c.rdb$field_name
> LEFT JOIN rdb$dependencies d ON d.rdb$dependent_name = r.rdb$relation_name
> AND d.rdb$field_name = rf.rdb$base_field
> WHERE r.rdb$relation_type = 1
> ORDER BY rf.rdb$field_position
>
> HTH,
> Set
>
>
Mit freundlichen Grüßen,
Thomas Beckmann
Diplom-Informatiker
Wielandstraße 14c • 23558 Lübeck
Tel +49 (22 25) 91 34 - 545 • Fax +49 (22 25) 91 34 - 604
Mail thomas.beckmann@... <mailto:thomas.beckmann@...>
ASSFINET-Logo
*ASSFINET Dienstleistungs-GmbH*
Max-Planck-Straße 14 • 53501 Grafschaft bei Bonn
info@... <mailto:info@...> • www.assfinet.de
<http://www.assfinet.de/>
Geschäftsführer: Dipl. Wirtschaftsinformatiker Marc Rindermann
Registergericht Koblenz HRB 23331
Diese E-Mail enthält vertrauliche Informationen. Wenn Sie nicht der
richtige Adressat sind oder diese E-Mail irrtümlich erhalten haben,
informieren Sie bitte sofort den Absender und vernichten Sie diese Mail.
Das unerlaubte Kopieren sowie die unbefugte Weitergabe dieser Mail ist
nicht gestattet.