Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] suma dla danych z jednego tablicy + wybór
Forum PHP.pl > Forum > Przedszkole
Wykrywacz
Mam do was pytanie, mam tabele:
Id_prac | kod | wartosc |kod_listy| data|
1111 |111 | 350 |14 |01.01.07|
1111 |112 | 350 | 14 | 01.01.07|
1111 |111 | 450 | 15 |01.01.07|
1111 |112 | 450 | 15 |01.01.07|
1111 |111 | 450 | 16 |01.01.07|
1112 |111 | 350 |14 |01.01.07|
1112 |112 | 350 | 14 | 01.01.07|
1112 |111 | 450 | 15 |01.01.07|
1112 |112 | 450 | 15 |01.01.07|
1112 |111 | 450 | 16 |01.01.07|
1112 |112 | 450 | 16 |01.01.07|

1. Jak zrobić sumę wartości wyglądającą tak że SUM(wartosc(kod111) - wartosc(kod112)) where id_prac ....
2. Dla pierwszego pracownika brakuje kodu 112 przy kod_listy 16. Jak najprościej to sprawdzić?

Problem polega na tym że ilość kodów dla danego kodu_listy nie jest taka sama (problem 2.).
Problem 1 jeżeli udało by mi się zrobić selekcję w której nie brął bym kod_listy w który występuje tylko jeden kod a dokładnie tylko 111, tez by się rozwiązywał.

Macie może pomysł jak to zrobić

aha tylko SQL bez php'a.
Kicok
1. Jeżeli w kolumnie `kod` masz jedynie wartości 111 i 112, to można je zamienić przy użyciu prostej matematyki na odpowiednio: 1 i -1. Teraz wystarczy tylko użyć tego jako znaku dla wartości z kolumny `wartosc`:
  1. SELECT SUM( ( kod * -2 + 223 ) * wartosc ) AS suma
  2. FROM tabela WHERE ( Id_prac = 1111 )


2.
  1. SELECT Id_prac, kod_listy
  2. FROM tabela GROUP BY Id_prac, kod_listy
  3. HAVING COUNT( * ) < 2
arecki
Nie bardzo chyba zrozumiałem ale o coś takiego chodzi ? :
  1. SELECT id_prac AS IDpr, (
  2. (SELECT SUM( wartosc ) FROM tabela WHERE kod = '111' AND id_prac = IDpr GROUP BY id_prac)
  3. -
  4. (SELECT SUM( wartosc ) FROM tabela WHERE kod = '112' AND id_prac = IDpr GROUP BY id_prac)
  5. ) AS roznica
  6. FROM tabela GROUP BY IDpr


-- EDIT --
Zapomniałem napisać że w polu "roznica" masz podane wartości które chciałeś (przynajmniej wg. mnie smile.gif) otrzymać.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.