Nowe posty

Autor Wątek: MYSQL  (Przeczytany 14941 razy)

konradnie

  • Gość
MYSQL
« Odpowiedź #15 dnia: 2005-08-05, 11:18:11 »
u mnie to samo
nadal nie dziala na forum debian users jest tam watek o tym jak to rozwiazali

ale u mnie nic nie daje rezultatu a sprawdzam na 2 kompach :(


avs

  • Gość
MYSQL
« Odpowiedź #16 dnia: 2005-09-10, 15:55:20 »
2005-08-05 11:18:11 konradnie napisał:

> u mnie to samo
 > nadal nie dziala na forum debian users jest tam watek o tym jak to rozwiazali
 >
 > ale u mnie nic nie daje rezultatu a sprawdzam na 2 kompach :(
 >
 >
alternatywa: w konsoli dziając jako zwykły user a tylko w potrzebnych sytuacjach \\"su -pmc program\\"
su będzie działał na zmiennych środowiskowch użytkownika który odpali to....

Rabarbar

  • Gość
MYSQL
« Odpowiedź #17 dnia: 2005-05-28, 00:35:05 »
Wiem ze to jest forum linuxowe ale mam problem ze znalezieniem odpowiednika dla tematu mysql'a.Wiec mam dwie prosby:
1.Jesli ktos zna linka do dobrego forum na temat MySql'q to prosze podac.
2.Jesli znasz odpowiedz na ponizszy probelm, rowniez prosze o pomoc ;).
A wiec tak.Mam Tabele o nazwie rachunek:
----------------------------------------------------------
Data           | Papier  |  Ilosc   |    Wartosc  |Gotowka
---------------------------------------------------------
2005-05-25 |  comp   |   226    |  26500     |    77.34
----------------------------------------------------------
2005-05-25 |  tpsa     |  485    |   9200      |  NULL  
----------------------------------------------------------
2005-05-27 |  comp   |  226    |   28000    |   3.45    
----------------------------------------------------------
2005-05-27 |  elektrim|  950    |   5200      |   NULL
----------------------------------------------------------

I teraz chce wyliczyc roznice pomiedzy wartoscia akcji+gotowki na koncie pomiedzy dniem 2005-05-25 a 2005-05-27.
Jesli licze sume dla jednego dnia to wszystko jest ok a robie to tak:
select sum(Wartosc)+Gotowka from rachunek where data = '2005-05-25'; - dzieki czemu zostaje wyswietlony poprawny wynik.
Wydawalo mi sie ze jesli uzyje ponizszego zapytania:
select sum(Wartosc)+Gotowka from rachunek where Data='2005-05-25' - select sum(Wartosc)+Gotowka from rachunek where Data='2005-05-27';
bedzie ok ale niestety nie dziala :/
Ktos pomoze?

a7v8x

  • Gość
MYSQL
« Odpowiedź #18 dnia: 2005-05-28, 10:33:30 »
2005-05-28 00:35:05 Rabarbar napisał:

> Wiem ze to jest forum linuxowe ale mam problem ze znalezieniem odpowiednika dla tematu
 > mysql'a.Wiec mam dwie prosby:
 > 1.Jesli ktos zna linka do dobrego forum na temat MySql'q to prosze podac.

dobrze jest śledzić jakąś grupe dyskusyjną np. pl.comp.bazy-danych

 > 2.Jesli znasz odpowiedz na ponizszy probelm, rowniez prosze o pomoc ;).

 > A wiec tak.Mam Tabele o nazwie rachunek:
 > ----------------------------------------------------------
 > Data           | Papier  |  Ilosc   |    Wartosc  |Gotowka
 > ---------------------------------------------------------
 > 2005-05-25 |  comp   |   226    |  26500     |    77.34
 > ----------------------------------------------------------
 > 2005-05-25 |  tpsa     |  485    |   9200      |  NULL  
 > ----------------------------------------------------------
 > 2005-05-27 |  comp   |  226    |   28000    |   3.45    
 > ----------------------------------------------------------
 > 2005-05-27 |  elektrim|  950    |   5200      |   NULL
 > ----------------------------------------------------------
 >
 > I teraz chce wyliczyc roznice pomiedzy wartoscia akcji+gotowki na koncie pomiedzy dniem
 > 2005-05-25 a 2005-05-27.
 > Jesli licze sume dla jednego dnia to wszystko jest ok a robie to tak:
 > select sum(Wartosc)+Gotowka from rachunek where data = '2005-05-25'; - dzieki czemu zostaje
 > wyswietlony poprawny wynik.
 > Wydawalo mi sie ze jesli uzyje ponizszego zapytania:
 > select sum(Wartosc)+Gotowka from rachunek where Data='2005-05-25' - select sum(Wartosc)+Gotowka
 > from rachunek where Data='2005-05-27';
 > bedzie ok ale niestety nie dziala :/
 > Ktos pomoze?

Myslę, że można wykonać to na dwa sposoby:
1. Wykonać dwa oddzielne zapytania i odjąć jeden wynik od drugiego - ale wydaje się to trochę nieeleganckie.
2. Wykonać zapytanie zagnieżdżone:

MySQL od wersji 4.1 obsługuje zapytania zagnieżdżone, tzn. zapytanie w zapytaniu. Jeżeli zapytanie wewnętrzne zwróci poprawną wartość, to zostanie wykonane zapytanie zewnętrzne. Dla Ciebie będzie to rozwiązanie optymalne.

A teraz kod:

select sum(Wartosc)+Gotowka - (select sum(Wartosc)+Gotowka from rachunek where Data='2005-05-27') from rachunek where data = '2005-05-25';

To powinno zadziałać. Pamiętaj jednak, że takie zapytania działają dużo wolniej niż normalne.
Zapytanie zagnieżdżone musi być ujęte w nawiasy!

Pozdrawiam
ps. Pisałem to z głowy, więc jak będą jeszcze jakieś problemy z tym zapytaniem - to pisz

Rabarbar

  • Gość
MYSQL
« Odpowiedź #19 dnia: 2005-05-28, 18:57:10 »
:( no to klapa. Moja wersja mysql'a to 4.0.20 wiec nic z tego.Chcialem zrobic upgrade'a na ver 4.1 ale w manualu jest to bardzo ciezko opisane wiec odpuszcze i pobawie sie na obecnej wersji ktora posiadam.
Dzieki za odpowiedz.

Rabarbar

  • Gość
MYSQL
« Odpowiedź #20 dnia: 2005-06-02, 21:36:53 »
Wrzucilem sobie nowszego MySql'a na windowsie.Rzeczywiscie, podzapytania sa obsugiwane w wersji od 4.1.
Teraz jest oki.

gieros

  • Gość
MYSQL
« Odpowiedź #21 dnia: 2005-06-02, 23:59:26 »
polecam forum.php.pl
mimo że o php to na temat mysqla też można znaleć trochę i się dowiedzieć

a7v8x

  • Gość
MYSQL
« Odpowiedź #22 dnia: 2005-06-03, 00:33:28 »
2005-06-02 21:36:53 Rabarbar napisał:

> Wrzucilem sobie nowszego MySql'a na windowsie.Rzeczywiscie, podzapytania sa obsugiwane w wersji
 > od 4.1.
 > Teraz jest oki.
 >

Cieszę się!!!