<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - Zapytanie w SQL]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=115&amp;type=atom"/>
	<updated>2008-12-15T14:27:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=115</id>
		<entry>
			<title type="html"><![CDATA[Odp: Zapytanie w SQL]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=422#p422"/>
			<content type="html"><![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]]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2008-12-15T14:27:55Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=422#p422</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Zapytanie w SQL]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=421#p421"/>
			<content type="html"><![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?]]></content>
			<author>
				<name><![CDATA[Madderidn]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=493</uri>
			</author>
			<updated>2008-12-15T11:04:42Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=421#p421</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: Zapytanie w SQL]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=407#p407"/>
			<content type="html"><![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?]]></content>
			<author>
				<name><![CDATA[rski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=26</uri>
			</author>
			<updated>2008-12-13T15:32:28Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=407#p407</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Zapytanie w SQL]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=393#p393"/>
			<content type="html"><![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.]]></content>
			<author>
				<name><![CDATA[Madderidn]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=493</uri>
			</author>
			<updated>2008-12-12T08:21:23Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=393#p393</id>
		</entry>
</feed>
