Search  
Friday, May 25, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  Visual FoxPro  Client/Server  Ajutor update s...
 Ajutor update sql
 
 9/7/2010 11:42:48 PM
User is offlinemrchiu
47 posts


Ajutor update sql
 (N/A) Modified By mrchiu  on 9/7/2010 11:47:21 PM)
Buna seara, Am urmatoarea comanda :

UPDATE operativa;
SET avize =( SELECT SUM(n*o) FROM sephora WHERE m in (select um from firme WHERE casa='casa1') AND q='Nefacturat');
WHERE operativa.a = "casa1"

Comanda functioneaza insa eu ar trebui sa folosesc aceasta comanda pentru 30+ firme si ma gandeam ca ar trebui sa fie o modalitate sa scriu comanda astfel incat sa ruleze pentru toate firmele.

Am citit acest topic http://profox.ro/Forum/tabid/55/forumid/6/threadid/31414/scope/posts/Default.aspx , insa nu reusesc sa il fac sa mearga din cauza acelei sume.

Aveti vreo idee?
Multumesc anticipat.
 9/7/2010 11:52:09 PM
User is offlineDaniel Buduru
2335 posts
1st




Re: Ajutor update sql
 (N/A)
Ce cheie ai intre operativa si sephora?


Daniel Buduru
 9/8/2010 12:07:28 AM
User is offlinemrchiu
47 posts


Re: Ajutor update sql
 (N/A) Modified By mrchiu  on 9/8/2010 12:14:07 AM)
nu este nici o cheie intre cele doua si nici nu am cum sa pun una
 9/8/2010 12:22:08 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Ajutor update sql
 (N/A)
Fara o cheie comuna intre tabele nu se poate face un join.
Trebuie sa ai o cheie coumna intre operativa si firme si o cheie (poate fi acceasi) intre firme si sephora.
Generic, selectul ar fi cam asa:

UPDATE operativa;
SET avize =( SELECT SUM(n*o) FROM sephora WHERE m in (select um from firme WHERE casa='LANCOME') AND q='Nefacturat');
WHERE operativa_februarie_2010.a = "LANCOME"

Update operativa set avize=cc.suma from ;
(select casa, sum(n*o) as suma from  ;
(select sephora.m, sephora.n, sephora.o, firme.casa from sephora inner join firma on sephora.m=firme.um where sephora.q='Nefacturat) sf ;
group by casa) cc ;
where operativa.a=cc.casa
 
Vezi ce poti face cu asta.


Daniel Buduru
 9/8/2010 12:32:47 AM
User is offlinemrchiu
47 posts


Re: Ajutor update sql
 (N/A)
sunteti genial ^^ a mers iar datele sunt copiate corect

o intrebare am referitoare la comanda : Era necesar acel "sf" din "q='Nefacturat) sf" , banuiesc ca era vorba de un alias dar nu este folosit
 9/8/2010 12:48:34 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Ajutor update sql
 (N/A)
Asa este, e un alias, si e nevoie de el in comanda, chiar daca nu e folosit in vreo expresie. Fiecare cursor implicat in join  trebuie sa aiba un nume.
SF vine de la Sephora si Firme - e bine sa ai o oarecare regula cand pui un alias, ca sa iti fie mai usor sa urmaresti codul si sa depanezi.



Daniel Buduru
 9/8/2010 10:25:11 AM
User is offlinemrchiu
47 posts


Re: Ajutor update sql
 (N/A)
am inteles, va multumesc pentru ajutor
  Visual FoxPro  Client/Server  Ajutor update s...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement