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  Solutie Select ...
 Solutie Select SQL
 
 10/28/2005 1:29:38 AM
User is offlineEugen Gliga
1052 posts
1st




Solutie Select SQL
 (Romania)
Am o tabela cu doua campuri semnificative, Luna si Numar unde luna ia valori de la 1 la 12 iar numar ia diverse valori care se pot repeta in luna. Cum s-ar putea obtine dintr-un singur select un cursor care sa contina in prima coloana luna iar in a doua numarul de numere distincte din luna. Eu am reusit doar din doua selecturi ca mai jos:

SELECT luna FROM documente GROUP BY luna, numar INTO CURSOR xxx
SELECT luna, COUNT(luna) FROM xxx GROUP BY luna INTO CURSOR yyy

Ar  fi interesant sa pot introduce, tot prin select,  cate o pozitie cu  0 la coloana 2, pt lunile care nu exista in prima tabela.


 10/28/2005 8:42:09 AM
User is offlineDaniel Buduru
2335 posts
1st




Re: Solutie Select SQL
 (N/A) Modified By Daniel Buduru  on 10/28/2005 9:25:14 AM)

In VFP 9:

CREATE CURSOR documente (luna i, numar i)
INSERT INTO documente (luna, numar) VALUES (3,1)
INSERT INTO documente (luna, numar) VALUES (3,2)
INSERT INTO documente (luna, numar) VALUES (3,3)
INSERT INTO documente (luna, numar) VALUES (3,1)
INSERT INTO documente (luna, numar) VALUES (3,1)
INSERT INTO documente (luna, numar) VALUES (3,1)
INSERT INTO documente (luna, numar) VALUES (3,2)
INSERT INTO documente (luna, numar) VALUES (5,1)
INSERT INTO documente (luna, numar) VALUES (5,2)
INSERT INTO documente (luna, numar) VALUES (5,4)
INSERT INTO documente (luna, numar) VALUES (5,6)
INSERT INTO documente (luna, numar) VALUES (5,2)
INSERT INTO documente (luna, numar) VALUES (11,2)
INSERT INTO documente (luna, numar) VALUES (11,3)
INSERT INTO documente (luna, numar) VALUES (11,1)

CREATE CURSOR luni (luna i)
LOCAL lnIndex
FOR lnIndex=1 TO 12
   
INSERT INTO luni (luna) VALUES (lnIndex)
NEXT

SELECT luna, COUNT(*) as numar_documente ;
FROM (select DISTINCT luna, numar FROM documente) as lunadoc ;
GROUP BY luna ;
UNION ;
select luna, 0 FROM luni WHERE luna NOT in :
SELECT DISTINCT luna FROM documente) ;
ORDER BY 1

P.S. Ar fi bine sa se specifice cu ce versiune de Fox se lucreaza

UPDATE

sau:

SELECT luni.luna, NVL(numar_documente,0) as numar_documente;
FROM luni LEFT OUTER JOIN ;
(
SELECT luna, COUNT(*) as numar_documente ;
FROM (select DISTINCT luna, numar FROM documente) as lunadoc ;
GROUP BY luna ) as luna_doc ;
ON luni.luna=luna_doc.luna


 


Daniel Buduru
 10/29/2005 12:47:43 AM
User is offlineEugen Gliga
1052 posts
1st




Re: Solutie Select SQL
 (Romania)
Multumesc. Amandoua variante  au corespuns cererii si au dus la rezultate identice.

Neagu

  Visual FoxPro  Baze de date, tabele, view-uri si indecsi  Solutie Select ...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement