CATEGORII DOCUMENTE |
Visual Fox Pro - SQL
Ne propune realizarea unui proiect care sa contina cateva interogari SQL. Pentru aceasta am creat patru table de tip free table, adica nu apartin unei baze de date.
Tabela CLIENTI
Nume camp |
Semnificatie |
Tip camp |
Lungime |
codcl |
codul clientului |
numeric | |
dencl |
numele clientului |
char | |
adresa |
adresa |
char | |
codpost |
cod postal |
numeric |
codfisc |
cod fiscal |
char |
Tabela FACTURI
Nume camp |
Semnificatie |
Tip camp |
Lungime |
nrfact |
numarul facturii |
numeric | |
codcl |
codul clientului |
numeric | |
datafact |
data facturarii |
data | |
valoare |
valoarea facturii |
numeric | |
valtva |
numeric |
Tabela LINIIFACT
nrfact |
numarul facturii |
numeric | |
linie |
numarul liniei |
numeric | |
codpr |
codul produsului |
numeric | |
cantitate |
cantitatea |
numeric | |
pretunit |
pret unitar |
numeric |
|
Tabela PRODUSE
codpr |
codul produsului |
numeric | |
denpr |
denumire produs |
char | |
um |
unitatea de masura |
char | |
grupa |
grupa produsului |
char | |
proctva |
procent tva |
numeric |
Interogari SQL
Cream un formular pe care il numim "menu" el va contine 18 butoane de tip Button Command.
Si acum interogarile.
1. Care sunt toate facturile?
Solutie :
Primul buton numit Afisare facturi care contine comanda "Select * from facturi"
2. Care este valoarea TVA deductibila aferenta valorii fiecarei facturi.?
Solutie: Adaugam un nou buton numit Calculare TVA care contine comanda "Update facturi set valtva=valoare*19/119"
3. Urmatorul buton numit Adugare Client contine comanda do form adaugare.scx, care deschide formularul Adaugare client, formular care contine 5 controloare de tip text box.
Primul text box este legat de campul codcl al tabelei CLIENTI cu ajutorul proprietatii ControlSource prin variabila c; al doilea text box este legat de campul denclient prin variabila d; s.a.m.d . Formularul contine de asemenea 5 controloare de tip Label prin care facem mai lizibil formularul. Am adaugat si un buton de tip command button care contine urmatoarele comenzi: " Insert into clienti(codcl, denclient, adresa, codpost, codfisc); value(val(c), d, a,val(cp) , cf)
c=''
d=''
a=''
cp=''
cf=''
Thisform.refresh()"
Se observa ca pentru text box 1 si text box 4 trebuie sa facem o conversie din tip caracter in tip numeric. La fel procedam si cu formularul adaugare_facturi.
4. Care sunt, codul fiscal, denumirea si codul fiscal al tuturor clientilor?
Solutie:
Adaugam un buton de tip command button Cod, denumire, cod fiscal care contine urmatoarea comanda : Select; codcl, denclient, codfisc from clienti
5. Care este valoarea totala a facturilor?
Solutie:
Adaugam un buton de tip command button Valoare Totala care contine urmatoarea comanda " Select sum(valoare) as val_tot from facturi".
6. Care este valoarea maxima a facturilor ?
Solutie:
" select max(valoare) as valoare_max from facturi"
7. Care este valoarea totala, maxima si minima a unei facturi?
Solutie:
Am creat un formular pe care l-am numit val_factura, care contine un controlor de tip text box, un buton de tip button command. Text box-ul este legat de tabela facturi cu ajutorul proprietatii ControlSource prin variabila n. Pe formularul menu am adaugat un buton care contine comanda : "do form val_factura.scx".
8. Care sunt facturile a caror valoare este mai mare de cat valoarea 1000?
Solutie:
Adaugam un buton care sa contina comanda: select * from facturi where valoare>1000
9. Care sunt produsele aferente facturii 5005, avand cantitatile mai mari decat 300?
Solutie:
Adaugam un buton care sa contina urmatoarea comanda:
"select * from liniifact;
where nrfact=5005 and cantitate>300
10. Care dintre facturi apartin clientului care are codul clientului egal cu 101, sa se ordoneze dupa numarul facturii?
Solutie:
Adaugam un buton care sa contina urmatoarea comanda:
Select facturi.codcl,facturi.nrfact,clienti.codcl;
from facturi inner join clienti on facturi.codcl=clienti.codcl;
where clienti.codcl=101;
order by facturi.nrfact
11. Ne propunem afisarea numerelor facturilor in mod distinct.
Solutie:
Adaugam un buton care sa contina urmatoarea comanda:
select Distinct(nrfact)as facturi from liniifact
12. Care sunt clientii care au in componenta numelor grupul de cuvinte "ent"?
Solutie:
Adaugam un buton care sa contina urmatoarea comanda:
select * from clienti where denclient like '%'+'ent'+'%'
13. Urmatorul buton contine o comanda do form cauta.scx prin care se deschide un formular cauta cu ajutorul caruia putem sa cautam, fara a fi necesar sa scriem in codul sursa.
Butonul formularului cauta contine urmatoarea comanda: select * from clienti;
where lower(denclient) like '%'+lower(alltrim(n))+'%'
n=''
thisform.refresh()
14. Care sunt facturile care valoarea TVA-ului cuprinsa intre valorile 90 si 200 ?
Solutie:
Adaugam un buton care sa contina urmatoarea comanda: "select * from facturi;
where valtva between 90 and 200
15. Care sunt toate produsele ?, sa se ordoneze dupa grupa.
Solutie:
Adaugam un buton care sa contina urmatoarea comanda:
select * from PRODUSE order by GRUPA
16. Cate linii are fiecare factura?
Solutie:
Adaugam un buton care sa contina urmatoarea comanda:
select count(NRFACT) as nr_Facturi, nrfact;
from liniifact;
group by nrfact
17. La cati clienti distincti s-au emis facturi?
Adaugam un buton care sa contina urmatoarea comanda:
Select count (Distinct codcl) from facturi
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 1381
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved