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  O problema cu s...
 O problema cu select nerezolvata in SQL...
 
 12/28/2005 8:49:31 AM
User is offlineAlin Berce
371 posts
3rd




O problema cu select nerezolvata in SQL...
 (Romania)
Se dau urmatoarele 3 tabele:
firma cu campul firma,utiliz cu campul utilizator, dreptul cu campurile utilizator,firmat.
In tabela firma va fi: firma1,firma2,firma3,firma4.
In tabela utiliz va fi: unu,doi,trei
In tabela dreptul va fi: unu - firma1, doi-firma2,doi-firma4.
Se cere un select care sa afiseze
unu - firma1 - da
unu-firma2 -nu
unu-firma3-nu
unu-firma4-nu
doi-firma1-nu
doi-firma2-da... etc
unde da sau nu inseamna daca utilizatorul are drept de acces pe firma. Drepturile de acces se gasesc in tabela dreptul.
Nu stiu daca m-am exprimat bine. Se pare ca am unele probleme cu select SQL :(. Am rezolvat problema in foxpro insa mi s-a zis ca pe sql server 7 ar fi cel putin 4 solutii si as vrea ca macar una-doua sa incerc sa observ care este mai performanta. Va multumesc.

VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 12/28/2005 12:06:42 PM
User is offlineAlex Dobrin
766 posts
www.algis.ro
1st






Re: O problema cu select nerezolvata in SQL...
 (N/A)
Eu nu am prea inteles ce vrei sa faci. Poti sa fi un pic mai explicit? Frma1, firma2, .. sunt campuri sau inregistrari din tabela firma? La fel si pt. restul. Daca ai rezilvat problema in fox poate ar fi mai usor sa pui acea rezolvare aici. Asa ar fi foarte clar rezultatul pe care vrei sa-l obtii.
Alex Dobrin
Algis Info
 12/28/2005 12:42:33 PM
User is offlineVladPop
250 posts
4th




Re: O problema cu select nerezolvata in SQL...
 (N/A)
Stai sa lamurim ceva: fiecare utilizator are acces la o singura firma? Sau unul poate avea acces la mai multe? Accesul e pe nivele(user, admin etc.)?

Anyway, cred ca abordarea nu e corecta. In tabela firma ar trebui sa ai un camp id_firma, sau asa ceva, iar in utiliz ar trebui sa ai acelasi camp. Astfel faci un inner join si iti afiseaza exact asa cum vrei tu.

Sau poti face cu grupuri de utilizatori: creezi o tabela grupuri unde bagi id-ul de la o firma sau mai multe, iar in utiliz alegi din care grup face parte utilizatorul Apoi, tot cu un join creezi un view care iti afiseaza ce trebuie.

Vlad Pop.
 12/28/2005 12:53:09 PM
User is offlineAlin Berce
371 posts
3rd




va multumesc
 (Romania)
Deci firma1,firma2 reprezinta valori ale campurilor. Oricum, va multumens. Solutia a fost:
select utiliz.utiliz,firma.firma ,
acces=case (select count(*) from dreptul where dreptul.utiliz=utiliz.utiliz and dreptul.firma=firma.firma)
when 1 then 'da'
when 0 then 'nu'
end
from utiliz,firma
order by utiliz

VFP, C#, SQL Server 2005/2008
"Proud to be a ProFox member".
 12/28/2005 11:05:11 PM
User is offlineAdrianTufă
306 posts
.: VFP Rocks :.
3rd


Re: va multumesc
 (Romania)

Putin cam alambicat, cu OUTER JOIN ai incercat ?

 12/30/2005 9:44:06 AM
User is offlinerlutia66
229 posts
4th




Re: va multumesc
 (N/A)
Solutia merge, dar nu stiu cum se comporta la multe inregistrari, facand subquery in definitia campului de output...

Cred ca mai merge si asa:

select
uf.utiliz,
uf.firma,
case dreptul.utiliz is null then 0 else 1 end as acces
from
(select utiliz, firma from utiliz, firma) uf
left join dreptul on uf.utiliz=dreptul.utiliz and uf.firma=dreptul.firma
order by 1,2



Rares LUTIA
Matricia Solutions
  Visual FoxPro  Client/Server  O problema cu s...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement