Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> porównanie pól
cornholio666
post
Post #1





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Witam,

Mam dwie tabele

pracownik

id | imie
1 | a
2 | b
3 | c
4 | d

pracownik_info

id | id_pracownika
1 | 1
2 | 1
3 | 2
4 | 3
5 | 3

Gdzie id_pracownika to klucz obcy

Chce zeby zapytanie zwrocilo mi id pracownika z tabeli pracownik ktorego id nie znajduje sie w pracownik_info.id_pracownika, w tym przypadku (4).

Własnie sobie poradziłem z problemem:

  1. SELECT pracownik.id FROM pracownik WHERE pracownik.id NOT IN (SELECT id_pracownika FROM pracownik_info) ;


Mam nowy problem:

pracownik_info

id | id_pracownika | kasa
1 | 1 | 100
2 | 1 | 50
3 | 2 | 150
4 | 3 | 60
5 | 3 | 90
6 | 2 | 10

Mam zwrocic id_pracownika z najwieksza i najmniejszą sumą wynagrodzeń

Ten post edytował cornholio666 28.06.2006, 21:18:52
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ad1) pare postow nizej byla podobna sytuacja. rozwiązano bez podzapytan:
Temat: Relacja wiele do wielu wyciaganie danych

ad2) pobaw sie z group by i having
Go to the top of the page
+Quote Post
cornholio666
post
Post #3





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Cytat
ad1) pare postow nizej byla podobna sytuacja. rozwiązano bez podzapytan:


Dzieki zrobiłem podobnie jak tam gdzie mi pokazales

Cytat
ad2) pobaw sie z group by i having


Bawie sie i bawie ale:

  1. SELECT id_pracownika, MAX(SUM(kasa)) FROM pracownik_info GROUP BY id_pracownika;


błąd

Cytat
Invalid use of group function


Googlowalem i sobie nie poradzilem. Nie wiem o co z tym GROUPEM chodzi. Może jakas podpowiedz ?
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no faktycznie, to nie tak prosto jak mi sie wczoraj wydawalo
  1. SELECT id_pracownika, sum(kasa) suma FROM pracownik_info GROUP BY id_pracownika ORDER BY suma DESC LIMIT 1

To ci zwroci kolesia z max. podobnie masz zrbic z min, tylko zamiast desc daj asc

Mozna to chyba w jednym zapytaniu zrobic, ale teraz nie mam glowy do tego
Go to the top of the page
+Quote Post
cornholio666
post
Post #5





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Wszytsko fajnie tylko jak do tego dodać wartość minimalna?
LIMIT 1 chyba nie wchodzi w gre? Dlaczego przy zastosowaniu max(sub(cos)) wywala błąd?

Cytat
Invalid use of group function



Spróbowałem tak:

  1. SELECT id_pracownika, sum(kasa) suma FROM pracownik_info GROUP BY id_pracownika ORDER BY suma DESC LIMIT 1 UNION
  2. SELECT id_pracownika, sum(kasa) suma FROM pracownik_info GROUP BY id_pracownika ORDER BY suma ASC LIMIT 1


Ale tez nie idze.

Ten post edytował cornholio666 30.06.2006, 07:18:53
Go to the top of the page
+Quote Post

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: 23.08.2025 - 22:31