<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=423&amp;type=atom"/>
	<updated>2010-04-09T16:09:09Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=423</id>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1948#p1948"/>
			<content type="html"><![CDATA[Coś takiego,ale nie mam pod ręką postgresa żeby sprawdzić czy gdzieś nie ma błędu.
Tylko nie wiem co za typ datetime, ktorego uzyłeś.
Jakiego postgresa uzywasz?
[code]
select nazwisko,data_ur from pracownicy p join zespoly z on(p.nr_zesp=z.nr_zesp) and
z.nazwa_zesp='XYZ' and p.data_ur>all
(select data_ur from pracownicy p1 join zespoly z1 on(p1.nr_zesp=z1.nr_zesp) and
z.nazwa_zesp='ZYX')
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-09T16:09:09Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1948#p1948</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1947#p1947"/>
			<content type="html"><![CDATA[[quote=rski]I jestes pewien że to działa? Mam wątpliwości.[/quote]

No jak sprawdziłem wynik zapytania z tym co jest w tabelach - no to wyszło mi to samo (przynajmniej tak mi się wydaje). :|

/*13*/

[code]
select * from
    (select P.NAZWISKO, P.DATA_UR as D1 from PRACOWNICY P join ZESPOLY Z on P.NR_ZESP = Z.NR_ZESP where P.PLEC = 'M' and Z.NAZWA_ZESP='CERTIO' group by P.NAZWISKO, P.DATA_UR) T1, 
    (select P.NAZWISKO, P.DATA_UR as D2 from PRACOWNICY P join ZESPOLY Z on P.NR_ZESP = Z.NR_ZESP where Z.NAZWA_ZESP = 'KONGO' group by P.NAZWISKO, P.DATA_UR) T2
where T1.D1>T2.D2;
[/code]

Coś nie mogę sobie poradzić, co by w rezultacie zwracało tylko po jednej kolumnie i po jednym wystąpieniu danej osoby wynikowej.
Powinno zwracać 2 nazwiska wraz z ich datami urodzenia (tak wynika z rekordów w bazie), natomiast dostaje coś takiego jak niżej i szczerze powiem, że nie mam pojęcia co jest nie tak (wynik generalnie jest prawidłowy, tyle że forma jego wyświetlenia do bani):
[code]
[nazwisko]                         [data_ur]                        [nazwisko]            [data_ur]
KOWALEWSKI         1984-09-25 00:00:00.000    KANAREK            1974-07-30 00:00:00.000
KOWALEWSKI         1984-09-25 00:00:00.000    KOWALSKA          1981-01-17 00:00:00.000
KOWALIK                    1982-03-21 00:00:00.000    KANAREK            1974-07-30 00:00:00.000
KOWALIK                    1982-03-21 00:00:00.000    KOWALSKA          1981-01-17 00:00:00.000
[/code]

Help. :)]]></content>
			<author>
				<name><![CDATA[DaeronNenmacil]]></name>
			</author>
			<updated>2010-04-09T09:00:39Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1947#p1947</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1946#p1946"/>
			<content type="html"><![CDATA[I jestes pewien że to działa? Mam wątpliwości.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-09T08:53:36Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1946#p1946</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1945#p1945"/>
			<content type="html"><![CDATA[[quote=rski]

/* 12 */ - jest podobne do /* 7 */

[/quote]

No to w takim razie stworzyłem cuś takowego : :)

[code]
select distinct Z.NAZWA_ZESP from ZESPOLY Z except select Z.NAZWA_ZESP from ZESPOLY Z 
right outer join PRACOWNICY P on P.NR_ZESP = Z.NR_ZESP
where P.PLEC not in (select P.PLEC from PRACOWNICY P where P.PLEC = 'M')
order by Z.NAZWA_ZESP
[/code]

Ale pewno sam na to podobieństwo bym za szybko nie wpadł. Dziki twojej wskazówce poszło mi szybko :) :D]]></content>
			<author>
				<name><![CDATA[DaeronNenmacil]]></name>
			</author>
			<updated>2010-04-09T08:45:18Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1945#p1945</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1944#p1944"/>
			<content type="html"><![CDATA[[code]
/* 11 */
select nazwa_zesp,count(*) as ilosc from pracownicy join zespoly on (pracownicy.nr_zesp=zespoly.nr_zesp) group by nazwa_zesp order by ilosc desc;
[/code]

/* 12 */ - jest podobne do /* 7 */
/* 13 */ jest podobne do /* 10 */]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-09T07:36:22Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1944#p1944</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1943#p1943"/>
			<content type="html"><![CDATA[[code]
/* 11 */
select nazwa_zesp,count(*) as ilosc from pracownicy join zespoly on (pracownicy.nr_zesp=zespoly.nr_zesp) group by nazwa_zesp order by ilosc desc;
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-09T07:33:04Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1943#p1943</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1942#p1942"/>
			<content type="html"><![CDATA[[quote=rski]Tylko że distinct w tej twojej wersji to jest chyba zbędny, w końcu group by generuje grupy z różnymi nazwa_zesp.[/quote]

Masz rację. Jakby nie było wciąż się uczę.
Pomożesz mi trochę w sprawie tych ostatnich 5 (od 11-15)? Chociaż jakaś wskazówka, co do poleceń które można by użyć?]]></content>
			<author>
				<name><![CDATA[DaeronNenmacil]]></name>
			</author>
			<updated>2010-04-09T06:46:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1942#p1942</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1941#p1941"/>
			<content type="html"><![CDATA[Tylko że distinct w tej twojej wersji to jest chyba zbędny, w końcu group by generuje grupy z różnymi nazwa_zesp.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-08T12:51:08Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1941#p1941</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1940#p1940"/>
			<content type="html"><![CDATA[[quote=rski]Skoro tak to musisz poprawić zapytanie 9 dodając jeszcze jedną tabele analogicznie do połączenia z twojego rozwiązania.

Własnie zauważyłem że 8 tez już wcześniej rozwiązałem :).

Czekam na inne twoje pomysły :).[/quote]

Ok, postaram się poprawić, a co do /*8*/ to też zauważyłem, ale nie wypadało tak jakoś zwracać uwagi "dobrej duszy" :)


[b]To może ja tak zawrotnie zapytam, jakich "poleceń' można wy użyć w pozostałych - było by mi łatwiej coś wykombinować?[/b]

Poprawiłem swój wynalazek - teraz daje to co i Twój i chyba teraz jest dobrze:
[code]
select distinct Z.NAZWA_ZESP from ZESPOLY Z except select Z.NAZWA_ZESP from ZESPOLY Z 
right outer join PRACOWNICY P on P.NR_ZESP = Z.NR_ZESP
left outer join WYPLATY W on W.NR_PRAC = P.NR_PRAC
where P.NR_PRAC not in (select W.NR_PRAC from WYPLATY W)
order by Z.NAZWA_ZESP
[/code]

A teraz moja wersja /* 9 */
[code]
select distinct Z.NAZWA_ZESP from ZESPOLY Z
left outer join PRACOWNICY P on P.NR_ZESP = Z.NR_ZESP
right outer join WYPLATY W on W.NR_PRAC = P.NR_PRAC
where P.NR_PRAC = W.NR_PRAC
group by Z.NAZWA_ZESP having SUM(W.KWOTA)>1000
order by Z.NAZWA_ZESP
[/code]]]></content>
			<author>
				<name><![CDATA[DaeronNenmacil]]></name>
			</author>
			<updated>2010-04-08T10:55:13Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1940#p1940</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1939#p1939"/>
			<content type="html"><![CDATA[Skoro tak to musisz poprawić zapytanie 9 dodając jeszcze jedną tabele analogicznie do połączenia z twojego rozwiązania.

Własnie zauważyłem że 8 tez już wcześniej rozwiązałem :).

Czekam na inne twoje pomysły :).]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-08T10:52:07Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1939#p1939</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1938#p1938"/>
			<content type="html"><![CDATA[[quote=rski]
Twoje raczej pokaze zespoly, ktore maja przynajmniej jednego pracownika z takimi zarobkami a to nie to samo co wszyscy pracownicy z zarobkami >0;
Poza tym chyba niepotrzebnie korzystasz z tabeli pracownicy bo o ile dobrze zrozumialem to zespoly laczy sie z wyplatami po kolumnach nr_prac_kz=nr_prac, tak ? mam racje?
[/quote]

Faktycznie, co do mojego "wynalazku", to masz rację - moje niedopatrzenie (muszę to poprawić jakoś). W tym momencie Twój "wynalazek" jest prawidłowy zapewne.

Co to tabeli "Pracownicy", to jest ona potrzebna gdyż "nr_prac_kz" to nie to samo co "nr_prac". To pierwsze to identyfikator kierownika zespołu, a to drugie indywidualnego pracownika. Innymi słowy nie każdy pracownik jest kierownikiem zespołu.

Dzięki za wszelką pomoc i chętnie przyjmę więcej. Ja też myśle dalej. Ciężko jest wymyślić sposób, jeśli nie ma się wiedzy jakich "narzędzi" użyć.]]></content>
			<author>
				<name><![CDATA[DaeronNenmacil]]></name>
			</author>
			<updated>2010-04-08T10:45:46Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1938#p1938</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1937#p1937"/>
			<content type="html"><![CDATA[[quote]
select distinct NAZWA_ZESP from ZESPOLY Z
join PRACOWNICY P on P.NR_ZESP = Z.NR_ZESP
join WYPLATY W on W.NR_PRAC = P.NR_PRAC
where W.KWOTA > 0
[/quote]
Twoje raczej pokaze zespoly, ktore maja przynajmniej jednego pracownika z takimi zarobkami a to nie to samo co wszyscy pracownicy z zarobkami >0;
Poza tym chyba niepotrzebnie korzystasz z tabeli pracownicy bo o ile dobrze zrozumialem to zespoly laczy sie z wyplatami po kolumnach nr_prac_kz=nr_prac, tak ? mam racje?
[code]
/* 8 */ jest naprawde proste, poradzisz sobie

/* 9 */
select nazwa_zesp from zespoly z,wyplaty w where z.nr_prac_kz=w.nr_prac group by z.nazwa_zesp having sum(kwota)>1000;


/* 10 */ cos w tym stylu chyba zadziala
select nazwisko from (select nazwisko,sum(kwota) as k1 from pracownicy p , wyplaty w where p.nr_prac=w.nr_prac group by nazwisko, p.nr_prac) t1, (select sum(kwota) as k2 from pracownicy p,wyplaty w where p.nr_prac=w.nr_prac and nazwisko='Y') t2 where t1.k1>t2.k2;
[/code]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-08T10:29:53Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1937#p1937</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1936#p1936"/>
			<content type="html"><![CDATA[[quote=rski]Ale musisz to przetestowac
[code]
/* 7 */
select nazwa_zesp from zespoly except select nazwa_zesp from zespoly where nr_prac_kz not in (select nr_prac from wyplaty);
[/code][/quote]

Ja to zrobiłem tak:
[code]
select distinct NAZWA_ZESP from ZESPOLY Z
join PRACOWNICY P on P.NR_ZESP = Z.NR_ZESP
join WYPLATY W on W.NR_PRAC = P.NR_PRAC
where W.KWOTA > 0
[/code]
Tak analizując to działa niby, choć daje co innego niż twój sposób - ciężko powiedzieć które jest dobre.

No nic, działam dalej, ale mimo wszystko proszę o dalszą pomoc. :)]]></content>
			<author>
				<name><![CDATA[DaeronNenmacil]]></name>
			</author>
			<updated>2010-04-08T10:10:35Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1936#p1936</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1934#p1934"/>
			<content type="html"><![CDATA[Chwilowo pracuje i brak czasu, jak tylko się odrobię to postaram się coś stworzyć, bo nie szukam "jelenia", tylko pomocy. :)]]></content>
			<author>
				<name><![CDATA[DaeronNenmacil]]></name>
			</author>
			<updated>2010-04-08T06:45:24Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1934#p1934</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Wyszukiwanie danych - pilna pomoc potrzbna!!!]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=1933#p1933"/>
			<content type="html"><![CDATA[To przynajmniej pokaż co wymyśliłeś, żeby nie wyglądało że szukasz jelenia, który rozwiąże za ciebie zadania domowe.]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2010-04-08T05:15:13Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=1933#p1933</id>
		</entry>
</feed>
