<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Zapytanie w SQL]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=115</link>
		<description><![CDATA[Najświeższe odpowiedzi w Zapytanie w SQL.]]></description>
		<lastBuildDate>Mon, 15 Dec 2008 14:27:55 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Zapytanie w SQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=422#p422</link>
			<description><![CDATA[chodzi o to że kolumna pokój (a takze od i do) wystepuje w wiecej kilku wskazanych przez ciebie tabelach, popraw tak
[code]select historia.pokoj, extract(day from historia.do-historia.od)*cena from historia,pokoje where nazwisko='Kowalski' and pokoje.pokoj=historia.pokoj;[/code]]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Mon, 15 Dec 2008 14:27:55 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=422#p422</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Zapytanie w SQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=421#p421</link>
			<description><![CDATA[SQL0203N  A reference to column "POKOJ" is ambiguous.  SQLSTATE=42702
Dwuznaczne odniesienie do pokoj?  Nie spotkalem sie z czyms takim i nie specjalnie wiem co z tym zrobic ale samo polecenie przechodzi. Daty idzie odejmowac normalnie (zwraca roznice dni ze zwyklego odejmowania do-od wiec z tym nie trzeba kombinowac).

Wiesz moze z czego wynika ten blad?]]></description>
			<author><![CDATA[dummy@example.com (Madderidn)]]></author>
			<pubDate>Mon, 15 Dec 2008 11:04:42 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=421#p421</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Zapytanie w SQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=407#p407</link>
			<description><![CDATA[[code]select pokoj, extract(day from do-od)*cena from historia,pokoje where nazwisko='Kowalski' and pokoje.pokoj=historia.pokoj;[/code]
nie sprawdzilem czy dziala ale moze cos analogicznego. tylko nie wiem po co w pokojach jest od i do. chcesz roznicowac ceny w zaleznosci od dat?]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Sat, 13 Dec 2008 15:32:28 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=407#p407</guid>
		</item>
		<item>
			<title><![CDATA[Zapytanie w SQL]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=393#p393</link>
			<description><![CDATA[W sumie zrobilem projekt. Baza danych hotelu. baza w db2 interfejs w php/html.

Zadaniem tego jest aby z podanych nizej tabel uzuskac dane na temat tego ile hotel zarobil na gosciu 'Kowalski' ale w jednym zapytaniu sql! (gora w dwoch). Ja to zrobie ale w prostacki sposob i przy pomocy php a nie w sql.

create table historia (
lp int PRIMARY KEY NOT NULL GENERATED ALWAYS AS IDENTITY (START WITH 1, INCREMENT BY 1),
nazwisko char(25),
pokoj int NOT NULL,
od date NOT NULL,
do date NOT NULL,
) @

Insert into historia values (DEFAULT,'Kowalski',204,'2008-10-10', '2008-10-13') @
Insert into historia values (DEFAULT,'Kowalski',101,'2008-11-11', '2008-11-16') @

drop table pokoje@
create table pokoje (
pokoj int PRIMARY KEY NOT NULL,
cena decimal (5,2),
od date,
do date,
) @

Insert into pokoje (pokoj, cena,) values (101, 250.00,) @
Insert into pokoje (pokoj, cena,) values (102, 250.00,) @
Insert into pokoje (pokoj, cena,) values (203, 400.00,) @
Insert into pokoje (pokoj, cena,) values (204, 400.00,) @
Insert into pokoje (pokoj, cena,) values (305, 550.00,) @

O ile sie orintuje to trzeba:
- wyciagnac z historii pokoj,od,do gdzie nazwisko = 'kowalski' a potem dla kazdego rekordu 
- odjac daty aby miec ilosc dni(przeliczajac na intigery i dzielac przez 8400) potem 
- z pokoje wyluskac cena i pomnozyc razy ilosc dni

TYLKO JAK TO ZROBIC W JEDNYM ZAPYTANIU?? 

Pisze z prosba o pomoc bo naprawde jestm w kropce... zrobilem to w php (ponizej) ale to nie wystarczylo.

$statement = "SELECT * FROM historia WHERE nazwisko = 'Kowalski'";
$res = odbc_exec($dbconn,$statement);
$suma = 0;
while (odbc_fetch_row($res)){
$pokoj = odbc_result($res,'pokoj');
$od = odbc_result($res,'od');
$do = odbc_result($res,'do');
$state= "SELECT cena FROM pokoje where pokoj=$pokoj";
$result = odbc_exec($dbconn,$state);
$cena = odbc_result($result,'cena');
$czas = (strtotime("$do GMT")- strtotime("$od GMT"))/86400;
$kwota = ($czas*$cena);
$suma = $suma + $kwota;
}


Jesli ktos potrafi to napisac w sql w troche dluzszej formie niz 1-2 linie to tez prosze sie nie krepowac. Zawsze sie czegos naucze.
Z gory dzieki za pomoc (jesli to sie da zrobic), a jak nie to za dobre checi.]]></description>
			<author><![CDATA[dummy@example.com (Madderidn)]]></author>
			<pubDate>Fri, 12 Dec 2008 08:21:23 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=393#p393</guid>
		</item>
	</channel>
</rss>
