<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - wyszukiwanie]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=1201</link>
		<description><![CDATA[Najświeższe odpowiedzi w wyszukiwanie.]]></description>
		<lastBuildDate>Fri, 20 Jan 2012 07:50:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: wyszukiwanie]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3369#p3369</link>
			<description><![CDATA[sorka za brak precyzji, SN_ID to jest serial_no i po tym polu będziemy szukać. Co do zapytania doszedłem do poniższego ale coś nie działa:( to miasło na celu wyszukanie wszystkich transakcji dla danego SN poukładać wg daty i ograniczyć do jednego rekordu dzięki czemu otrzymamy ostatni rekord jaki jest w bazie dla danego sn i do tego rekordu dopisujemy resztę potrzebnych danych.(ale tak jak mówie coś nie działa):

SELECT
	(SELECT
	idt.date_created AS "Data kreacji",
	ipt.serial_no AS "SN",
	idtypet.name AS "TYPDOK"
	FROM
	app.inventory_part_location_tab iplt
	LEFT JOIN app.inventory_document_transaction_tab idtt ON idtt.inventory_part_id=iplt.inventory_part_id,
	app.inventory_document_tab idt,
	app.inventory_document_type_tab idtypet,
	app.inventory_part_tab ipt
	WHERE
	idt.inventory_document_id=idtt.inventory_document_id
	AND idtypet.inventory_document_type_id=idt.inventory_document_type_id
	AND ipt.inventory_part_id=iplt.inventory_part_id
	ORDER BY idt.date_created DESC
	LIMIT 1)
AND ipt.serial_no IN ('222-333-444')

powiązanie tabel:
tabela1-tabela2 wg ID_DOKUMENTU
tabela2-tabela3 wg inventory_part_id]]></description>
			<author><![CDATA[dummy@example.com (lukaszp)]]></author>
			<pubDate>Fri, 20 Jan 2012 07:50:48 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3369#p3369</guid>
		</item>
		<item>
			<title><![CDATA[Odp: wyszukiwanie]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3368#p3368</link>
			<description><![CDATA[Nie bardzo to rozumiem, po pierwsze Sn_id wg tego co napisałeś nie występuje w żadnej z tych trzech tabeli (może chodzi o app.inventory_part_tab.serial_no ?). Po drugie lepiej by było gdybyś umieścił to zapytanie do którego doszedłeś, nawet jeśli "wyskakują wszystkie transakcje", to mnie w ten sposób łatwiej zobaczyć jaka logika wchodzi tutaj w grę, a po trzecie dobrze by było gdybyś oprócz samych nazw i typów kolumn dodał informację o powiązaniach (klucze główne, obce itd. ).]]></description>
			<author><![CDATA[dummy@example.com (gszpetkowski)]]></author>
			<pubDate>Thu, 19 Jan 2012 19:04:25 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3368#p3368</guid>
		</item>
		<item>
			<title><![CDATA[wyszukiwanie]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=3367#p3367</link>
			<description><![CDATA[Witam, mam problem z następującym zapytaniem. W bazie danych dany Sn_id jest nie powtarzalny natomiast występuje wielokrotnie podczas różnego rodzaju przesunięć magazynowych. Zapytanie ma na celu wyciągnąć ostatnie info dla danego SN. Info czyli dokument oraz magazyn w którym się znajduje. I teraz jeżeli zapytanie dotyczy tylko jednego SN_ID to temat jest dość prosty, kłopot zaczyna się gdy SN mamy więcej niż 1. SN do zapytania wrzucam za pomocą IN ('xxx', 'tyyy') ale wyskakują mi wszystkie transakcje magazynowe w których dany SN występował:( a mnie interesuje tylko ostatnia.:(

Poniżej struktura:
app.inventory_document_tab zawiera kolumny:
inventory_document_type_id	character varying	Id typu dokumentu ( to chcemy mieć na raporcie)
inventory_document_id	integer	Id dokumentu
date_created	timestamp without time zone	Data utworzenia ( to chcemy mieć na raporcie)

2ga tabela to:
app.inventory_document_transaction_tab zawiera kolumny:
inventory_document_transaction_id	integer	Id transakcji
inventory_document_id	integer	Id dokumentu
inventory_part_id	integer	Id pozycji magazynowej
inventory_location_id	character varying	Id lokalizacji magazynowej (to chcemy mieć na raporcie)

3cia tabela to:
app.inventory_part_tab zawiera kolumny:
inventory_part_no	character varying	Nr inwentarzowy
serial_no	character varying	Numer seryjny urządzenia (to chcemy mieć na raporcie)
inventory_part_id	integer	Id pozycji w ewidencji

dodatkowo jezeli sn nie ma w magazynie to powinna byc informacja na jakim dokumencie ostatnio występował dany SN.]]></description>
			<author><![CDATA[dummy@example.com (lukaszp)]]></author>
			<pubDate>Thu, 19 Jan 2012 16:03:24 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=3367#p3367</guid>
		</item>
	</channel>
</rss>
