<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - wyszukiwanie]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1201&amp;type=atom"/>
	<updated>2012-01-20T07:50:48Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1201</id>
		<entry>
			<title type="html"><![CDATA[Odp: wyszukiwanie]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3369#p3369"/>
			<content type="html"><![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]]></content>
			<author>
				<name><![CDATA[lukaszp]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1315</uri>
			</author>
			<updated>2012-01-20T07:50:48Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3369#p3369</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: wyszukiwanie]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3368#p3368"/>
			<content type="html"><![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. ).]]></content>
			<author>
				<name><![CDATA[gszpetkowski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1223</uri>
			</author>
			<updated>2012-01-19T19:04:25Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3368#p3368</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[wyszukiwanie]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3367#p3367"/>
			<content type="html"><![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.]]></content>
			<author>
				<name><![CDATA[lukaszp]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1315</uri>
			</author>
			<updated>2012-01-19T16:03:24Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3367#p3367</id>
		</entry>
</feed>
