<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - nieprawidłowe wskazanie na pozycję w klauzuli FROM]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=2258</link>
		<description><![CDATA[Najświeższe odpowiedzi w nieprawidłowe wskazanie na pozycję w klauzuli FROM.]]></description>
		<lastBuildDate>Mon, 16 Feb 2015 12:15:33 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: nieprawidłowe wskazanie na pozycję w klauzuli FROM]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5438#p5438</link>
			<description><![CDATA[Wow, ale kombinujesz - widać, że obwody Ci się przegrzewają (w dobrym tego słowa rozumieniu)

Zerknij czy dobrze Cię zrozumiałem
with baza9003 (Miejscowość,Email,WWW,rodzaj_branży,pna) as (values
('Amsterdam','a@a.com','www.a.com','IT','pna1'),
('Amsterdam','a@a.com','www.a.com','IT','pna1'),
('Barcelona','b@b.com','www.b.com','IT','pna2')),
     pna (powiat,województwo,pna) as (values ('powiat 1','dolnośląskie','pna1'),('powiat 1','dolnośląskie','pna1'),('powiat 2','dolnośląskie','pna2'),('powiat 3','województwo 2','pna3')),
     Tabela_32 (powiat) as (values ('powiat 1'),('powiat 2'),('powiat 2'),('powiat 3'),('powiat 4'))
select distinct a.pna, a.Miejscowość, a.Email, a.WWW, a.rodzaj_branży
  from baza9003 a
 where 
      exists (select 1 
                from pna 
               where województwo='dolnośląskie' 
                 and exists (select 1 
                               from Tabela_32 t 
                              where t.powiat=pna.powiat)
                 and a.pna ilike '%'|| trim(pna.pna) ||'%')
order by rodzaj_branży;

Staraj się załączać informacje o tabelach (wszystko co masz po CREATE TABLE), których używasz - łatwiej udzielić odpowiedzi.
Dobra rada 
1. opisz sobie słownie co dokładnie chcesz uzyskać w efekcie końcowym zapytania. To ułatwi Ci potem pisanie selecta
2. używaj nazw tabel i kolumn tak by niosły jakąś zrozumiałą informację, to że ty wiesz co znajduje się w polu "pna" to nie znaczy, że ja mam o tym pojęcie.
3. nie jestem tego do końca pewny ale chyba nazwy powiatów w obrębie województw mogą się powtarzać, złączenie tabel "tabela_32" i "pna" może dać Ci nieprzewidywalne wyniki.]]></description>
			<author><![CDATA[dummy@example.com (c_michal)]]></author>
			<pubDate>Mon, 16 Feb 2015 12:15:33 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5438#p5438</guid>
		</item>
		<item>
			<title><![CDATA[nieprawidłowe wskazanie na pozycję w klauzuli FROM]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=5437#p5437</link>
			<description><![CDATA[select distinct  a.pna, a.Miejscowość, a.Email, a.WWW, a.rodzaj_branży 
from baza9003 a, 
(select powiat from Tabela_32) b,
(select distinct pna from pna where województwo='dolnośląskie' and powiat=b.powiat) p
where a.pna like '%'|| trim(p.pna) ||'%'
order by rodzaj_branży;

BŁĄD:  nieprawidłowe wskazanie na pozycję w klauzuli FROM dla tabeli "b"
LINE 4: ...m pna where województwo='dolnośląskie' and powiat=b.powiat) ...
                                                             ^
HINT:  Występuje wpis dla tabeli "b", ale nie może mieć odniesień z tej części zapytania.

********** Błąd **********

BŁĄD: nieprawidłowe wskazanie na pozycję w klauzuli FROM dla tabeli "b"
Stan SQL: 42P01
Wskazówka: Występuje wpis dla tabeli "b", ale nie może mieć odniesień z tej części zapytania.
Znak: 222


Gdzie tu jest BŁĄD pogrzebany?

jeżeli
usunę
(select powiat from Tabela_32) b,
i zamiast
and powiat=b.powiat
wpiszę
and powiat='powiat1' or   powiat='powiat2' or  powiat='powiat3' 

to wszystko działa ale nie o to mi chodzi. Chcę aby ten drugi warunek pochodził z tabeli.
Jak to zrobić?]]></description>
			<author><![CDATA[dummy@example.com (wiesiek)]]></author>
			<pubDate>Sun, 15 Feb 2015 13:41:27 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=5437#p5437</guid>
		</item>
	</channel>
</rss>
