Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   brauche dringend HILFE bei SQL-Abfrage (https://www.delphipraxis.net/67954-brauche-dringend-hilfe-bei-sql-abfrage.html)

polondo 22. Apr 2006 12:54


brauche dringend HILFE bei SQL-Abfrage
 
Hi,

ich hab folgendes Problem beim ausführen dieser Abfrage:
SQL-Code:
select distinct invoicepos.quantity as output,productbookingpos.quantity as income from invoicepos,productbookingpos
where invoicepos.quantity = (select sum(quantity)from invoicepos where prod_id = 5453)
and productbookingpos.quantity = (select sum(quantity)from productbookingpos where prod_id = 5453)
Wenn beide Abfrageobjekte(output & income) Ergebnisse haben bekomme ich beide Werte angezeigt. Wenn auch nur EINER dieser objekte KEIN Ergebnis
enthält bekomme ich überhaupt NICHTS angezeigt. Das heißt es gibt mir nur dann ein Ergebniss zurück wenn beide Abfrage-Objekte einen Wert enthalten.

1. Gibt es eine Möglichkeit in der Abfrage festzulegen das ein "0" beispielsweise genommen werden soll (für das entprechende Abfrage-Objekt) wenn kein Ergebnis für eines der Abfrage-Objekte vorliegt?

2. Ist es möglich während der Abfrage eine Differenz beider Werte zu bilden und dann als "Result" beispielsweise zurückzugeben?
Bisher habe ich immer eine 2te Abfrage mit den gegebenen Werten gestartet um dies zu bewerkstelligen

Für jede Antwort bin ich sehr dankbar

mfg.
R.

DP-Maintenance 22. Apr 2006 13:12

DP-Maintenance
 
Dieses Thema wurde von "r_kerber" von "Programmieren allgemein" nach "Datenbanken" verschoben.
Da es um SQL-Statements geht gehört dieses Thema in das Forum Datenbanken.

omata 22. Apr 2006 13:21

Re: brauche dringend HILFE bei SQL-Abfrage
 
Hallo polondo,

welche Datenbank?

was spricht gegen ein OR?
SQL-Code:
SELECT DISTINCT invoicepos.quantity AS output,
                productbookingpos.quantity AS income,
                ABS(  COALESCE(invoicepos.quantity, 0)
                    - COALESCE(productbookingpos.quantity, 0)) AS diff
FROM invoicepos, productbookingpos
WHERE invoicepos.quantity = (SELECT SUM(quantity)
                             FROM invoicepos
                             WHERE prod_id = 5453)
   OR productbookingpos.quantity = (SELECT SUM(quantity)
                                    FROM productbookingpos
                                    WHERE prod_id = 5453)
MfG
Thorsten

polondo 22. Apr 2006 15:58

Re: brauche dringend HILFE bei SQL-Abfrage
 
danke für die antwort!

ich kannte garnicht den befehl des COALESCE. und das mit dem or scheint garnicht mal so schlecht zu sein. entweder er findet das eine oder das andere eben. da hast du schon recht. allerdings scheint die ganze befehfolge bei mir in eine art schleife zu geraten. aber ich danke dir trotzdem da ich dies nun als anstoss für weitere versuche nehmen kann!

btw. ich arbeite mit msql-server 2000



mfg
R.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:23 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