Simpatie.ro - matrimoniale
CS-Apollo
Cs-Apollo
Nou pe simpatie:
deyutza07 pe Simpatie.ro
Femeie
23 ani
Buzau
cauta Barbat
25 - 48 ani
CS-ApolloReguliInregistrareLoginPozeNu sunteti logat. Lista Forumurilor Pe Tematici
CS-Apollo / Baze De Date /

BazeDate3

Pagini: 1  
#1
Jam3Sb0nd
Administrator
Postari: 12312937
Baze de date - 3

SQL

Functie conversie string catre number: chr(). Functie ce returneaza data sau data+ora curenta: date() si datetime()
Exemplu: select "Simbolul "+simb+"avand volumul"+str(vol) from cotatii where data_c=date()

Variatia neta si procentuala a pretului fata de sedinta anterioara (tema de la seminarul 2):

select a.simb,a.pret pret_azi,i.pret pret_ieri,a.pret-i.pret net,a.pret*100/i.pret-100 procn from cotatii a;
inner join cotatii i on a.simb=i.simb where i.data_cselect max(c.data_c) from cotatii c;
where c.data_c<>date() and c.simb=i.simb) and a.data_c=date()

Sa se calculeze suma, media volumului de tranzactionare pe fiecare simbol.

Select simb,count(vol) nr,sum(vol) suma,avg(vol) medie from cotatii group by simb

Sa se calculeze suma, media volumului de tranzactionare pentru cazurile in care volumul a fost mai mare ca 3000.

Select simb,count(vol) nr,sum(vol) suma,avg(vol) medie from cotatii where vol>3000 group by simb

Sa se afiseze suma, media volumului de tranzactionare pentru cazurile in care media a fost mai mare ca 7500.

Select simb,count(vol) nr,sum(vol) suma,avg(vol) medie from cotatii group by simb having medie>7500

ATENTIE: Clauza where filtreaza inregistrarile tabelei(lor) initiale iar having filtreaza rezultatul obtinut dupa grupare.

Limbajul FOX

In FoXPro fiecare tabela se deschide intr-o zona de lucru denumita A, B, C… sau 1, 2, …
EX:
Sa se deschida tabela emitenti In zona A si cotatii facturi In zona B.
SELECT A
USE emitenti
SELECT B
USE cotatii
SELECT A
brow
SELECT B
Brow




Sa presupunem ca in cotatii si emitenti avem urmatoarele inregistrari:


Instructiuni


Instructiune    Efect     
MODIFY STRUCTURE    Modificarea structurii logice a unei tabele     
DISPLAY STRUCTURE  sau LIST STRUCTURE    Vizualizarea structurii logice     
Close tables
Use cotatii
Go top    Se plaseaza indicatorul la inceputul tabelei cotatii     
?dbf()    Afiseaza tabela deschisa: cotatii     
Go bottom    Se plaseaza indicatorul la sfarsitul tabelei     
Skip +2    Se se deplaseaza peste 2 inregistrari inainte     
Skip -2    Se se deplaseaza peste 2 inregistrari inapoi     
Go top
?nume,data_c    TLV  12/10/05     
Go 3
?simb,data_c    TLV   01/23/05     
Display sau
list next 1    Se afiseaza inregistrarea curenta
TLV   01/23/05  7000   1.14     
Display all
List
Brow    Se afiseaza intreaga tabela, in diferite formate     
Go top
?"Simbolul "+simb+" are pretul"+str(pret)    Simbolul TLV are pretul 1
Se face rotunjire.     
Go top
?"Simbolul "+simb+" are pretul"+str(pret,10,4)    Simbolul TLV are pretul 1.1500
In acest caz se specifica lungimea maxima a sirului si cat se se aloce pentru partea zecimala.     
go bottom
?simb,data_c,recno(),bof(),eof()    SNP  01/03/05  4  .F.  .F.
Recno() – returneaza nr inregistrarii curente
Eof()- returneaza .T. daca este sfarsitul tabelei si .F. altfel
Bof()- returneaza .T. daca este inceputul tabelei si .F. altfel     
?reccount()    Numarul inregistrarilor din tabela curenta: 4     
Go bottom
Skip
?simb,data_c,recno(),bof(),eof()          /  /     5  .F.  .T.     
Index on simb+dtoc(data_c) tag cota_pk unique
set order to cota_pk
list
set order to    Se construieste un index care nu accepta duplicate pe simb si data_c. Se activeaza indexul creat si se afiseaza inregistrarile sortate. Dupa afisare se dezactiveaza indexul.     
go top
list while pret>1.14    Afiseaza cotatiile care au pretul mai mare ca 1.14     
go top
list next 2 while pret>1.14    Afiseaza cotatiile care au pretul mai mare ca 1.14 din primele doua inregistrari     
Close tables
Use emitenti
Count for cap_soc>3000 to nr
?"numarul de emitenti avand capitatlul social mai mare decat 3000 este: "+str(nr)    Afisza numarul emitentilor care au capitalul social mai mare decat 3000     
set talk off
sum cap_soc to capital
?[suma capitalulilor sociale este: ],capital    Afiseaza suma capitalulilor sociale
Se va folosi set talk off daca nu se doreste sa se afiseze suma de doua ori.     
Average cap_soc for simb=[T] to medie
?[media capitalulilor sociale este: ],medie    Media capitalulilor sociale pentru societatile ce incep cu T     
Average cap_soc to medie
List for cap_soc>medie    Emitentii ce au capitalul social mai mare decat media     
Use emitenti
calculate min(cap_soc),sum(cap_soc),avg(cap_soc) to minm,suma,medie
?minm,suma,medie    Afiseaza minimul, suma si media capitalulilor sociale ale emitentilor     
Use cotatii
Replace for simb=[TLV] pret with pret*1.2    Se mareste cu 20% cotatiile pentru TLV     
use cotatii
Delete for vol<8000
brow
pack sau recall all
brow    Se sterg cotatiile cu volum mai mic decat 8000. Initial doar se marcheaza pentru stergere. Pack: stergere fizica. Recall all: se readuc inregistrarile care nu au fost sterse fizic.     
Zap sau
Delete all
Pack    Se sterg fizic toate inregistrarile din tabela.     
Use cotatii
append from emitenti fields simb    Se adauga la sfaristul tabelei cotatii simbolurile din emitenti


 
   
Pagini: 1  
Mergi la