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  Baze de date, tabele, view-uri si indecsi  algoritm...
 algoritm
 
 9/29/2009 5:40:09 AM
User is offlinevmira27
13 posts


algoritm
 (N/A)
M-am blocat la un algoritm de 2 lei :) pentru ca nu stiu ce comenzi sa folosesc.

Ce am:

1) activitati_2009: un tabel care contine activitatile care trebuie facute in 2009: cod, data_la_care_se_efectueaza, alte coloane
2) istoric: alt tabel in care se tine istoricul: cod, data_la_care_s_a_efectuat, alte coloane. Acest tabel contine si inregistrari anterioare anului 2009!! (activitatea "a" are mai multe date la care s-a efectuat sau s-ar putea sa nu existe deoarece nu a fost efectuata)

Ce vreau:

Un tabel temporar (se creeaza de fiecare data) care contine toate inregistrarile din activitati_2009 plus inca o coloana care contine pentru fiecare activitate in parte ultima data la care s-a efectual (luata din istoric).

multumesc!!
 9/29/2009 7:08:06 AM
User is offlineCostel
227 posts
www.adrisoft.ro
4th




Re: algoritm
 (N/A)
Incearca:
    use activitati_2009 alias Act in 0
    use istoric alias Ist in 0
    select Act.*,NVL(Ist.data_la_care....,CTOD('  .  .    ') as data_ist ;
        from Act left join Ist on Act.cod=Ist.cod and Act.data_la_care...=Ist.data_la_care... ;
        into cursor Temp
    browse





Nu munci atit de mult incit sa nu-ti mai ramina timp ca sa cistigi bani. (proverb evreiesc)
 9/29/2009 12:01:10 PM
User is offlinevmira27
13 posts


Re: algoritm
 (N/A)
Multumesc Costel, sunt pe aproape.

Am scos NVL(...) deoarece in istoric nu am date nule (daca activitatea nu s-a executat, nu o trec in istoric) dar imi da eroarea "Command contains unrecongized phrase/keyword.
Am vazut pe msdn sintaxa lui select si nu e pomenit nimic de "as" dar daca scot si sa din cod, cursorul Temp contine exact tavelul Act.

Am atasat si un expemplu pentru ceea ce vreau sa fac.
xxxxx.zip 
 9/29/2009 12:01:54 PM
User is offlinevmira27
13 posts


Re: algoritm
 (N/A)
Atasamentul....
 9/29/2009 12:31:12 PM
User is offlineaflorin
840 posts
1st


Re: algoritm
 (N/A)
Eroare nu are cum sa fie de la AS. Incearca asta:

SELECT Act.*, 0000 AS Int_Field
FROM Act
INTO CURSOR Temp

Florin Aparaschivei - Iasi
 9/29/2009 1:03:07 PM
User is offlineCostel
227 posts
www.adrisoft.ro
4th




Re: algoritm
 (N/A)
 vmira27 wrote
Am scos NVL(...) deoarece in istoric nu am date nule

Ideea era ca poti avea activitati planificate dar care nu au fost executate, deci nu figureaza in istoric.
Oricum cu sau fara NVL selectul trebuia sa functioneze. N-am reusit sa accesez fisierul xxxxx.zip




Nu munci atit de mult incit sa nu-ti mai ramina timp ca sa cistigi bani. (proverb evreiesc)
 9/30/2009 6:52:15 AM
User is offlinevmira27
13 posts


Re: algoritm
 (N/A)
Fisierul nu poate fi accesat deoarece cand fac upload new file imi ataseaza ce vrea el din lista "file name" din attachments, nu ce ii dau eu la "upload new file" :(
Ceea ce mi-ai spus sa fac era un query asa ca am facut un query (left join PLANIFICATE si ISTORIC) si m-am convins ca selectul merge si am reusit sa obtin rezultatele dorite de mine.

activitatea a - 10/03/2009
activitatea b - .NULL. (planificata in 2009 dar nexecutata)
activitatea c - 04/04/2008 (planificata in 2009 si executata si in 2008)
activitatea c - 04/04/2009 (planificata in 2009 si executata si in 2009)

Ideea e ca vreau sa scot din lista activitatile executate in anii anteriori (gen 2008) sau cand om fi in 2010 sa nu mi le puna pe cele executate in 2008 si 2009.
Singura experienta cu query-uri o am din ACCESS. In access se pot folosi coloanele obtinute din interogare pentru a filtra sau pentru a face alte calcule cu ele in interiorul aceleiasi interogari. In VFP 9 se poate face asa ceva?
Filtrarea dupa an pot sa o fac prin verificarea anului in care s-a executat si compararea cu YEAR(DATE()) dar imi scoate si ce e .NULL.

Multumesc inca o data de ajutor!!

 10/1/2009 12:24:25 PM
User is offlineaflorin
840 posts
1st


Re: algoritm
 (N/A)
Din informatiile pe care le-ai dat pina acum, urmatorul SELECT ar trebui sa scoata ce ai nevoie:

SELECT a.*, MAX(ist.data_la_care_s_a_efectuat) AS UltimaData
FROM activitati_2009 a INNER JOIN istoric ist
ON a.cod = ist.cod
WHERE YEAR(a.data_la_care_se_efectueaza) = 2009
AND YEAR(ist.data_la_care_s_a_efectuat) = 2009
GROUP BY a.cod
INTO TABLE tmpActivitati

PS:
- pentru VFP8/9 ai nevoie de SET ENGINEBEHAVIOR 70 pentru acest SELECT
- am plecat de la premisa ca o activitate care are completata activitati_2009.data_la_care_s_a_efectuat are cel putin o linie cu acceasi data in istoric

Florin Aparaschivei - Iasi
 10/1/2009 7:36:19 PM
User is offlinevmira27
13 posts


Re: algoritm
 (N/A)
Multumesc Florin!

O sa incerc peste cateva zile pentru ca acum am inceput sa introduc datele :(
  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  algoritm...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement