[OT] SQL vypocty se sloupci
Slavomir Skopalik
skopalik@elektlabs.cz
Pondělí Listopad 30 11:29:15 CET 2009
Nepisete o jaky SQL se jedna.
Ve Vasem pripade se bude jednat o spravnou volbu grupoveni, s tim,
ze vyraz se SUM musite pokazde zopakovat.
Treba takto:
tabulka se sloupci a a b
SELECT SUM(a), SUM(a)-SUM(b) FROM tabulka
nebo
SELECT typ_vyrobku, SUM(a), SUM(a)-SUM(b) FROM tabulka
GROUP BY typ_vyrobku.
Pokud se jedna o slozitejsi vypocty, je lepsi pouzit uloznou proceduru.
V pripade, ze pouzivate SQL firebird, muzete pouzit tzv. SELECT EXPRESION
SELECT (SELECT SUM(a) FROM TAB1 WHERE b=x), x FROM tab2
nebo execute statament (ukazka z delphi klienta):
IBQP.SQL.Text:=Format('EXECUTE BLOCK AS '+CRLF+
'DECLARE id INTEGER=NULL;'+CRLF+
'DECLARE idm INTEGER =%d;'+CRLF+
'DECLARE LoLo DOUBLE PRECISION =%s;'+CRLF+
'DECLARE Lo DOUBLE PRECISION =%s;'+CRLF+
'DECLARE Hi DOUBLE PRECISION =%s;'+CRLF+
'DECLARE HiHi DOUBLE PRECISION =%s;'+CRLF+
'BEGIN '+CRLF+
'SELECT id FROM DevMeasurandLimits WHERE idDevice=1 AND
idDevMeasurand=:idm INTO :id;'+CRLF+
'IF(id IS NULL) THEN '+
'INSERT INTO DevMeasurandLimits(idDevice,idDevMeasurand, LoLo,
Lo, Hi, HiHi) VALUES(1,:idm, :LoLo, :Lo, :Hi, :HiHi);'+
'ELSE '+
'UPDATE DevMeasurandLimits SET LoLo=:LoLo, Lo=:Lo, Hi=:Hi,
HiHi=:HiHi WHERE id=:id;'+
'END',
[p.id,FloatToSQLStr(p.Actual.MinMin),FloatToSQLStr(p.Actual.Min),FloatToSQLS
tr(p.Actual.Max),FloatToSQLStr(p.Actual.MaxMax)]);
IBQP.ExecQuery;
Slavek
Ing. Slavomir Skopalik
Jednatel spolecnosti
Elekt Labs s.r.o.
Chaloupky 158
783 72 Velky Tynec
Czech Republic
--------------------------------------------
Mobil: +420 724 207 851
icq:199 118 333
e-mail:skopalik@elektlabs.cz
http://www.elektlabs.cz
> -----Original Message-----
> Da se nejak provadet kalkulace se sloupci v SQL dotazu, kdyz nektery
> z nich je vytvoren pomoci sum()? Neco jako tento (nefunkcni) pokus:
>
> SELECT op.products_name, sum(op.products_quantity) as sale,
> p.products_quantity as stock, sale-stock as predict FROM ....
>
> Prvni sloupec je nazev vyrobku, druhy je prodej za urcite obdobi,
> treti je aktualni skladova zasoba a ve ctvrtem bych chtel mit
> predpoved skladu za totez obdobi (pokud prodej bude
> pokracovat stejnym tempem).
>
> J. Hanzal
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list@list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
>
More information about the Hw-list
mailing list