firebird sql - pridanie novych zaznamov na zaklade dotazu

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod freightcar 6. 10. 2006 17:26

mam tabulku kde su vsetky pohyby na sklade.
potrebujem v tabulke vybrat polozky ktore maju stav vacsi ako nula na sklade " "
tu je query (nesmejte sa mi, ak sa to da aj jednoduchsie - som db zaciatocnik :-) )
Kód: Vybrat vše
select
  itemcode, sum(qty), avg(cost)
  from
  ITEMH
  where ITEMLOC=''
  group by ITEMCODE
  having sum(qty)> 0


pre vsetky tieto polozky nasledne potrebujem vytvorit 2 riadky v tej istej tabulke. jeden kde bude (-)qty zo skladu '' a druhy kde bude (+)qty na sklad (ON HAND). teraz to robim tak (zase pls nesmejte sa mi :-) vyexportujem uvedny dotaz do *.csv, to otvorim vo vi a urobim z toho sql kod

Kód: Vybrat vše
:%s/^\(.*\),\(.*\),\(.*\)$/insert into itemh (ITEMCODE, DAT_, TYPES, REFERENCE,
QTY, COST, ITEMLOC, ITEMHUNO, REVERSED) values ('\1','10\/06\/2006','STKTRX','St
ock Adjustment 10\/06\/2006','\2','\3','ON HAND',gen_id(NEXTUNIID, 0),'M')


takze vysledok je takyto
Kód: Vybrat vše
insert into itemh (ITEMCODE, DAT_, TYPES, REFERENCE, QTY, COST, ITEMLOC, ITEMHUNO, REVERSED) values ('02-06018-00','10/06/2006','STKTRX','Stock Adjustment 10/06/2006','56','1.62895348837209','ON HAND',gen_id(NEXTUNIID, 0),'M')


da sa povedat ze dosiahnem co potrebujem ale zda sa mi to prilis zlozite (query, export, vi , copy- paste, sql script)
neda sa to zahrnut aj select aj update v jednom scripte? ako by ste to robili vy? vdaka za kazdy tip
To understand the concept, you should think of “free” as in “free beer”, not as in “free speech”.
freightcar
Junior
Uživatelský avatar

Odeslat příspěvekod Trebus 7. 10. 2006 12:47

Podle meho nazoru by bylo nejlepsi vytvorit si v databazi vlozenou proceduru a tu jen spustit.
Ted bohuzel nemam cas vymyslet nejake priklady, koukni se treba sem:
http://www.interbase-world.com/en/articles/718.php
Trebus
Junior

Odeslat příspěvekod Trebus 7. 10. 2006 13:00

Jeste neco dodam: podivej se hlavne na cyklus
Kód: Vybrat vše
FOR SELECT ...
INTO ...
DO BEGIN
...
END

V selectu muzes projit radky a v casti BEGIN ... END provadet potrebne inserty.
Trebus
Junior


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků