Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MYSQL] Trudne zapytania
--reno--
post
Post #1





Goście







Witam, mam problem z zapytaniem:
Mam takie tabele:
MATERIAL (id, nazwa,stan)
DOKUMENT (id, dokument, operacja, id_mat)

I nie wiem jak wykonac zapytanie ktore przy np danych w bazie.

id | nazwa | stan
1 | gruszka | 20

id | dokument | operacja | id_mat
1 | P | 10 | 1 <- P - przychod
1 | R | 5 | 1 <- R - rozchod


I zeby w wyniku otrzymac 25.
Albo same przchody 30.

Prosze o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
melkorm
post
Post #2





Grupa: Zarejestrowani
Postów: 1 366
Pomógł: 261
Dołączył: 23.09.2008
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. SELECT IF(op.dokument='R' , o.stan - sum(op.operacja) , o.stan + sum(op.operacja)) AS wartosci,op.dokument FROM test o INNER JOIN test2 op ON (o.id=op.id_mat) WHERE o.id=1 GROUP BY dokument


gdzie test to produkty

a test2 to przychód / rozchód 

jeżeli chcesz uniknąć warunku z początku zapytania możesz dawać dla rozchodów wartości ujemne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ogólnie jeżeli dałbyś w rozchodach dał wartości ujemne uniknąłbyś tego całego bałaganu dla każdej wartości czy przychód czy rozchód były by proste zapytania i sądze ze to jest najlepszy wybór.

Cytat
Zrobilem cos takiego ale dziala jedynie jak sa jakies wartosci. Jezeli nie ma w P lub w R nic to jest (NULL) i wszystko przestaje dzialac. Jak to mozna obejsc?


w strukturze tabeli dać domyślną wartość 0 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował melkorm 24.09.2008, 00:23:59
Go to the top of the page
+Quote Post
sf
post
Post #3





Grupa: Zarejestrowani
Postów: 1 597
Pomógł: 30
Dołączył: 19.02.2003
Skąd: Tychy

Ostrzeżenie: (0%)
-----


Cytat(melkorm @ 24.09.2008, 00:01:00 ) *
w strukturze tabeli dać domyślną wartość 0 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)


Co mu to da ? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Nic. Bo jeśli nie będzie dalej wartości to NULL wynika z braku wpisów.

Rozwiązanie podałem i działa pod mysql również.

http://dev.mysql.com/doc/refman/5.0/en/con...-functions.html

Najlepiej rozchody i przychody wpisywać w osobnej kolumnie, a nie tak jak obecnie czy z minusem. Kto to słyszał by przychody i rozchody trzymać w jednej. Wystarczy spojrzeć do standardowej księgi rozchodów i przychodów.
Go to the top of the page
+Quote Post

Posty w temacie
- -reno-   [MYSQL] Trudne zapytania   23.09.2008, 11:07:09
- - Pilsener   [SQL] pobierz, plaintext SELECT sum(nazwa_pola...   23.09.2008, 12:25:17
- - -reno-   [SQL] pobierz, plaintext SELECT DISTINCT stan-...   23.09.2008, 12:36:32
- - -reno-   [SQL] pobierz, plaintext SELECT (stan+sum...   23.09.2008, 13:41:20
- - sf   W postgresql to można zrobić tak : [SQL] pobierz,...   23.09.2008, 14:14:14
- - -reno-   nikt naprawde nie wie??   23.09.2008, 21:50:58
- - melkorm   [SQL] pobierz, plaintext SELECT IF(op.dokument...   23.09.2008, 23:01:00
|- - sf   Cytat(melkorm @ 24.09.2008, 00:01:00 ...   24.09.2008, 07:57:52
- - -reno-   Zrobilem takie zapytanie: [SQL] pobierz, plaintext...   24.09.2008, 08:10:33
- - -reno-   Temat do zamkniecia poradzilem sobie z tym... pozd...   24.09.2008, 08:47:55
- - -reno-   Jeszcze jedno mam takie zapytanie: [SQL] pobierz,...   24.09.2008, 12:42:57
- - melkorm   [PHP] pobierz, plaintext <?phpif($tablica...   24.09.2008, 12:48:37


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 9.10.2025 - 06:11