Select mai complex in MySql ???

Întrebări legate de conectarea la baze de date MySQL prin intermediul PHP

Moderatori: Zamolxe, Moderatori


diaconuliviu
PHPRomania Supporter
Mesaje: 15
Membru din: Joi Feb 19, 2004 3:21 pm

Iarta-ma

Mesajde diaconuliviu » Joi Feb 19, 2004 3:29 pm


Avatar utilizator
biban
Senior Member
Mesaje: 204
Membru din: Dum Apr 13, 2003 8:23 pm
Localitate: Giurgiu
Contact:

Mesajde biban » Joi Feb 19, 2004 5:30 pm

...daca raspunzi laintrebarea asta ai rezolvat problema.
nu ai cum sa scoti ce nu ai asha ca ar trebui sa fie suficient join-ul pentru ca va afisa stocurile la tot ce a intrat.

computershop
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Sep 01, 2003 7:51 pm
Contact:

Re: Iarta-ma

Mesajde computershop » Joi Feb 19, 2004 6:57 pm


diaconuliviu
PHPRomania Supporter
Mesaje: 15
Membru din: Joi Feb 19, 2004 3:21 pm

Re: Iarta-ma

Mesajde diaconuliviu » Lun Feb 23, 2004 7:57 am


computershop
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Sep 01, 2003 7:51 pm
Contact:

Re: Iarta-ma

Mesajde computershop » Vin Feb 27, 2004 9:37 pm


Radical
Senior Member
Mesaje: 327
Membru din: Lun Feb 16, 2004 2:40 pm
Localitate: Bucuresti
Contact:

CEREREA complexa

Mesajde Radical » Mar Mar 16, 2004 5:35 pm


computershop
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Sep 01, 2003 7:51 pm
Contact:

Re: CEREREA complexa

Mesajde computershop » Mar Mar 16, 2004 5:38 pm

[quote="Radical"]Dupa mici discutii online cu computershop an ajuns aman2 la concluzia ca acest query ii trebuia:

... practic au fost mici, dar intense :D !!!

aniflaviu
Average Member
Mesaje: 67
Membru din: Mar Mar 02, 2004 9:08 am
Contact:

Mesajde aniflaviu » Mar Apr 27, 2004 3:04 pm

si eu am nevoie de un select mai special tot pentru evidentierea unui stoc

daca ar fi fost date niste explicatii la selectul postat poate ca reuseam si eu sa fac ceva ...

am doua tabele:

CREATE TABLE livrate (
id int(10) unsigned NOT NULL auto_increment,
data date NOT NULL default '0000-00-00',
produs varchar(50) NOT NULL default '',
buc smallint(5) unsigned NOT NULL default '0',
datatimp datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id)
) TYPE=MyISAM;


si


CREATE TABLE realizate (
id int(10) unsigned NOT NULL auto_increment,
data date NOT NULL default '0000-00-00',
produs varchar(50) NOT NULL default '',
buc smallint(5) unsigned NOT NULL default '0',
datatimp datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (id)
) TYPE=MyISAM;


structura e aceiasi, diferind doar numele
zilnic se introduc produsele realizate si cele livrate


inregistrarile arata cam asa:


data produsul buc data inregistrarii cod unic

01-01-2004 p1 1 22-04-2004 12:59:39 4
02-02-2005 p2 2 22-04-2004 13:00:31 5
03-03-2006 p3 3 22-04-2004 13:12:33 6
04-04-2007 p1 4 22-04-2004 13:12:51 7
05-05-2008 p2 5 22-04-2004 13:13:18 8


in acest caz stocul se calculeaza prin "scaderea" din realizate a celor livrate
tinand cont ca se introduc zilnic produse, acestea trebuie mai intai grupate apoi scazute


va multumesc!

computershop
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Sep 01, 2003 7:51 pm
Contact:

Mesajde computershop » Mar Apr 27, 2004 5:47 pm

Practic exemplul-rezolvare postat n-a mers. Am lasat-o cum o facusem eu intial inainte de a posta intrebarea, adica cu doua insert-uri intr-o tabela temporara si un select final pentru stocuri. Dar, daca citeai 8O intreg topicul aveai o potentiala explicatia la problema ta. La tine treaba este destul de simpla, incearca sa citesti help-ul la SELECT, are doua instructiuni care te vor ajuta (daca inveti sa le folosesti corect :) ), si anume JOIN(de tip LEFT sau RIGHT) in functie cum tabelele in relatie (eu te sfatuiesc sa folosesti LEFT) si GROUP BY. Multa bafta ! Daca nu te descurci deloc (dar fa-ti lectiile mai intai) te astept cu intrebari !

Si acum imi cer scuze pentru ce voi intreba in continuare, sper sa nu supar pe nimeni, sunt doua intrebari ce ma macina de mult :

:?: De ce oare se asteapta anumiti oameni ce posteaza aici, sau pe alte forum-uri sa obtina raspunsuri complete si/sau cat mai complexe, fara a studia initial indeajuns problema pe care o posteaza ?

:?: De ce oare raspunsurile nu sunt la obiect (vezi si exemplu meu de acum :? ) si deseori bat caimpii ? - Eu am intrebat in topicul acesta mai sus cum fac un select si am primit un raspuns cum ca nu este normal ce vreau eu, si daca vine politia economica si garda financiara si trupele lui Baiazid Cuceritorul peste mine n-o sami fie bine deloc daca vreau sa fac selectul in cauza (am fos un pic tendentios, nu va suparati !)

Pa

Leo de la Constanta

aniflaviu
Average Member
Mesaje: 67
Membru din: Mar Mar 02, 2004 9:08 am
Contact:

Mesajde aniflaviu » Mie Mai 05, 2004 9:01 am

am facut urmatoarea interogare:

SELECT realizate.produs produs , sum(realizate.buc) bucati_realizate , sum(livrate.buc) bucati_livrate , (sum(realizate.buc)-sum(livrate.buc)) stoc from realizate LEFT JOIN livrate on realizate.produs = livrate.produs GROUP BY realizate.produs ORDER BY realizate.produs ASC

imi merge doar in prima faza, cu datele existente in db initial. dupa ce introduc noi date totul se da peste cap, indiferent ca introduc datele cu codul php personal, phpmyadmin, sau alt program folosit in gestiunea mysql db

ex:

produs bucati_realizate bucati_livrate stoc

peste 5 2 3 (asta chiar la inceput inainte de a mai introduce date)

daca introduc la livrate 1 bucata de peste imi face:

peste 10 3 7 (incrementeaza corect pestii livrati dar imi mareste si buc realizate cu valoarea initiala)

daca mai introduc 2 buc de peste:

peste 15 5 10 (incrementeaza corect pestii livrati dar imi mareste si buc realizate cu valoarea existenta initial, 5)


Daca introduc date in tabela realizate, la fel, imi da ceva ciudat ...

va multumesc anitcipat pentru interesul manifestat!

toate cele bune!

computershop
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Sep 01, 2003 7:51 pm
Contact:

Mesajde computershop » Mie Mai 05, 2004 9:45 am


aniflaviu
Average Member
Mesaje: 67
Membru din: Mar Mar 02, 2004 9:08 am
Contact:

Mesajde aniflaviu » Mie Mai 05, 2004 10:29 am


computershop
PHPRomania Supporter
Mesaje: 19
Membru din: Lun Sep 01, 2003 7:51 pm
Contact:

Mesajde computershop » Mie Mai 05, 2004 10:42 am


aniflaviu
Average Member
Mesaje: 67
Membru din: Mar Mar 02, 2004 9:08 am
Contact:

Mesajde aniflaviu » Mie Mai 05, 2004 11:42 am



Înapoi la “MySQL”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 8 vizitatori