<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title><![CDATA[Forum PostgreSQL - Poważny problem - kolumny i konkretne okna = współpraca]]></title>
		<link>https://forum.postgresql.org.pl/viewtopic.php?id=138</link>
		<description><![CDATA[Najświeższe odpowiedzi w Poważny problem - kolumny i konkretne okna = współpraca.]]></description>
		<lastBuildDate>Sat, 07 Feb 2009 08:07:07 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=535#p535</link>
			<description><![CDATA[Nie ma problemu żeby sobie nazywać/aliasowć tabele po klauzuli FROM, a następnie tych aliasów użyć po SELECT
czyli
[code]SELECT s.kolumna1
       ,s.kolumna2
  FROM tabela1 s
       ,tabela2 y
 WHERE s.id=y.id
      --,itd[/code]
Oczywiście nie musi tak być. Można napisać bez aliasowania, ale to zmusza nas do wklepania nazwy tabelki w selekcie

[code]SELECT tabela1.kolumna1
       ,tabela2.kolumna2
  FROM tabela1
       ,tabela2
 WHERE tabela1.id=tabela2.id
      --,itd[/code]
Tu jest chyba wszystko: 
[url]http://www.postgresql.org/docs/8.3/interactive/sql-select.html[/url]

Jak widac

where from_item can be one of:
    [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ]

Mogłem zrobić FROM tabela1 AS s ale nie muszę ;]
Milej lektury :)]]></description>
			<author><![CDATA[dummy@example.com (psocha)]]></author>
			<pubDate>Sat, 07 Feb 2009 08:07:07 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=535#p535</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=534#p534</link>
			<description><![CDATA[Po przeanalizowaniu na podstawie tego co napisałeś(tłumaczenie) zrozumiałem. I powiem więcej, wybitne :) Nie wiedziałem, że można manipulować pionem i poziomem wstawianych. Coś dla mnie nowego, ale i zarazem wspaniałego :)

ALE, nie rozumiem nadal zapisu:

p.przedmiot, c.ocena from student s    <---- (wycinek z tego co napisaleś w kodzie)

skąd jest "p.przedmiot" jak SELECT [...] odnosi się wpierw do kolumn, a później po FROM do tabelek. Jakby odczytywać: " Wyświetl(SELECT) dane z kolumn 'p.przedmiot itd' wykorzystując tabelki(FROM) 'student s' .

No ja bardzo przepraszam, ale ja tam nie widze ani kolumne, która nazywa się "p.przedmiot", ani tabelke,która nzywa się "student s"(spacja po 'student' 's'). Jężeli jest to inne połączenie tabelek, to prosze o przetłumaczenie :)]]></description>
			<author><![CDATA[dummy@example.com (tomboy)]]></author>
			<pubDate>Fri, 06 Feb 2009 22:01:01 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=534#p534</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=533#p533</link>
			<description><![CDATA[values('ja'),('ty'),('inni'),('cizli') - to robi insert z 4 rekordami

Myślałem, że można jedynie zapisać w sposób:

values('ja','ty','inni','cizli')  - a to robi insert z 1 rekordem do 4 kolumn


a to 

p.przedmiot(i inne tego typu)  - nie widze tam takiej nazwy tabelki, albo wiersza, z kropką. Ten zapis znam, ale jako warunek, gdzie "p" jest nazwą tabelki, a "przedmiot" nazwą kolumny. Pojedyncze literki przed kropką.

to jeden z wielu sposobów na łączenie tabelek.]]></description>
			<author><![CDATA[dummy@example.com (psocha)]]></author>
			<pubDate>Fri, 06 Feb 2009 20:47:14 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=533#p533</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=532#p532</link>
			<description><![CDATA[Nie bardzo rozumiem zapis:

values('ja'),('ty'),('inni'),('cizli') 

Myślałem, że można jedynie zapisać w sposób:

values('ja','ty','inni','cizli')  

A, ty zrobiłeś z tego cztery otwarte i zamknięte zawiasy. Co to zmienia, jeżeli zapisze to tak jak podałeś?

I

p.przedmiot(i inne tego typu)  - nie widze tam takiej nazwy tabelki, albo wiersza, z kropką. Ten zapis znam, ale jako warunek, gdzie "p" jest nazwą tabelki, a "przedmiot" nazwą kolumny. Pojedyncze literki przed kropką.
Albo:

student s   (samopas sobie chodzi "s")

(wiem co to "as" - analogia do aliasu, dlatego nie pytam)

P.S Dziękuje za zainteresowanie.]]></description>
			<author><![CDATA[dummy@example.com (tomboy)]]></author>
			<pubDate>Fri, 06 Feb 2009 20:10:08 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=532#p532</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=530#p530</link>
			<description><![CDATA[rski napisal ci solution jak sie patrzy 


[code],-[19:58:46]merlin@[local]:5432=
`-merlin>create table student (id serial primary key, imienazwisko varchar(30));
NOTICE:  CREATE TABLE will create implicit sequence "student_id_seq" for serial column "student.id"
NOTICE:  CREATE TABLE / PRIMARY KEY will create implicit index "student_pkey" for table "student"
CREATE TABLE
Time: 75,232 ms
,-[19:58:55]merlin@[local]:5432=
`-merlin>create table przedmioty(id serial, przedmiot varchar(16));
NOTICE:  CREATE TABLE will create implicit sequence "przedmioty_id_seq" for serial column "przedmioty.id"
CREATE TABLE
Time: 3,948 ms
,-[19:59:15]merlin@[local]:5432=
`-merlin>create table oceny(id_studenta int, id_przedmiotu int, ocena numeric(4,2));
CREATE TABLE
Time: 4,204 ms

,-[19:59:52]merlin@[local]:5432=
`-merlin>insert into student(imienazwisko) values('ja'),('ty'),('inni'),('cizli');
INSERT 0 4
Time: 362,522 ms
,-[20:00:36]merlin@[local]:5432=
`-merlin>insert into przedmioty(przedmiot) values('sieci'),('analiza'),('fiza'),('matma');
INSERT 0 4
Time: 1,396 ms
,-[20:01:15]merlin@[local]:5432=
`-merlin>insert into oceny values(1,1,2.0);
INSERT 0 1
Time: 1,191 ms
,-[20:01:44]merlin@[local]:5432=
`-merlin>insert into oceny values(1,2,4.0);
INSERT 0 1
Time: 0,870 ms
,-[20:01:48]merlin@[local]:5432=
`-merlin>insert into oceny values(3,4,6.0);
INSERT 0 1
Time: 0,951 ms
,-[20:01:58]merlin@[local]:5432=
`-merlin>select s.imienazwisko as student, p.przedmiot, c.ocena from student s, oceny c, przedmioty p where s.id=c.id_studenta and c.id_przedmiotu=p.id;
 student | przedmiot | ocena 
---------+-----------+-------
 ja      | sieci     |  2.00
 ja      | analiza   |  4.00
 inni    | matma     |  6.00
(3 rows)

Time: 1,250 ms[/code]
Pomijam fakt FK, Unique itp ;]
I troche nie wiem po co kobinowac ...
Po co sobie zycie utrudniac :P]]></description>
			<author><![CDATA[dummy@example.com (psocha)]]></author>
			<pubDate>Fri, 06 Feb 2009 19:05:46 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=530#p530</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=528#p528</link>
			<description><![CDATA[Masz racje, że oceny jak i ucznowie i wszystko inne może się zmieniać, ale ta baza ma być statyczna.

Nie wspomniałem, że mam jeszcze tabelke ze studentami, osobną. Mam taki pomysł, żeby zrobić z tej kolumny imie_nazwisko w tabelce studenci klucz obcy dlatabelki, którą podałeś jako "oceny", wtedy pobierałbym jedynie tą kolumnę(studentów) i wynik byłby taki, że pobierałbym jedną kolumne do tableki "oceny". Tabele z przedmiotami również mam osobną na potrzeby nauczycieli (kto, co prowadzi). Pomyślałem sobie, że wykorzystam te dwie kolumny. Doszłaby jedynie kolumna "ocena".

                                 |  OCENY |
--------------------------------------------------
imie_nazwisko | przedmiot | Ocena
--------------------------------------------------
mietek           |                 |          
robert
itd

I mam problem. Nie wiem jak to ugryść, bo jeden uczeń może chodzisz na wszystkie przedmiotu. Tabelka byłaby ogromiasta uczeń *(razy) przedmiot = 28 możliwości.

Jestem w kropce :(]]></description>
			<author><![CDATA[dummy@example.com (tomboy)]]></author>
			<pubDate>Fri, 06 Feb 2009 16:52:45 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=528#p528</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=526#p526</link>
			<description><![CDATA[Hehe

Jakby normalnie nie istniało pojęcie normalizacji :)]]></description>
			<author><![CDATA[dummy@example.com (psocha)]]></author>
			<pubDate>Fri, 06 Feb 2009 07:19:16 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=526#p526</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=525#p525</link>
			<description><![CDATA[Wybacz ale troche to bez sensu. Ilosc przedmiotow moze sie zmieniac (nie mozesz zalozyc ze nie) i co wtedy reorganizujesz tabele dodajac wiersz.
Po to uzywasz postgresa, relacyjnej bazy danych aby móc korzystac z tabelek.
To co chcesz osiagasz za pomoca trzech tabel

student(idS, imie, nazwisko)
przedmiot(idP, nazwa_przedmiotu)
oceny(idS,idP)

Zdecydowanie lepsze rozwiazanie niz twoje.

Odpowiadajac na pytanie czy sie da, pewnie tak ale przy pomocy fukcji wlasnorecznie napisanej.]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Thu, 05 Feb 2009 19:24:52 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=525#p525</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=524#p524</link>
			<description><![CDATA[Potrzebuje dodać je do osobej tabelki jako klucz obcy.

INSERT INTO oceny (id_student,id_nazwa_przedmiotu,ocena) VALUES ('5','1',,'',);

Chciałbym aby było tego rodzaju wynik:

INSERT INTO oceny ( id_student,nazwa_przedmiotu1,nazwa_przedmiotu2,nazwa_przedmiotu3,nazwa_przedmiotu4) VALUES ('1(serial)','1','2,',3','4','5');

Żeby wartości "nazwa_przedmiotu" były kolumnami, dla wartości przedmiotów tj: "matematyka, fizyka itd"
np:

Studenci | Fizyka | Matematyka | itd
----------------------------------------------------
Marian    |     2    |      3            |  2   

ITD...

Cyfry będą ocenami, później jeszcze żeby było można wykonywać na nich filtracje, jakieś operacje. Musze do tego tworzyć nową tablekę, czy moge wykorzystać wartości w kolumnach? Nazwy będą identyczne co w tych kolumnach, ale kolumnami nie są, niestety, dlatego się pytam :(]]></description>
			<author><![CDATA[dummy@example.com (tomboy)]]></author>
			<pubDate>Wed, 04 Feb 2009 21:46:36 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=524#p524</guid>
		</item>
		<item>
			<title><![CDATA[Odp: Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=523#p523</link>
			<description><![CDATA[A to zalezy do tego co chcesz potem robic z ta 'tabela' z kolumnami 'przedmiot1',...]]></description>
			<author><![CDATA[dummy@example.com (rski)]]></author>
			<pubDate>Wed, 04 Feb 2009 21:25:04 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=523#p523</guid>
		</item>
		<item>
			<title><![CDATA[Poważny problem - kolumny i konkretne okna = współpraca]]></title>
			<link>https://forum.postgresql.org.pl/viewtopic.php?pid=522#p522</link>
			<description><![CDATA[Witam. 

Mam pewien problem. Mam sobie tabelkę, która w której są:

INSERT INTO nazwa (nazwa_przedmiotu) VALUES ('przedmiot1')
INSERT INTO nazwa (nazwa_przedmiotu) VALUES ('przedmiot2')
INSERT INTO nazwa (nazwa_przedmiotu) VALUES ('przedmiot3')
INSERT INTO nazwa (nazwa_przedmiotu) VALUES ('przedmiot4')

Ale nazwy tych przedmiotów, czyli "przedmiot1/2/3/4" są mi potrzebne to utworzenia kolumn. Bo w tym przypadku jak widać, są wartościami w kolumnach.

Moje pytanie:

Czy musze tworzyć nową tabelkę, która będzie miała nazwy kolumn "przedmiot1/2/3/4" 

CREATE TABLE przedmioty(
przedmiot1 varchar(12) NOT NULL,
przedmiot2 varchar(12) NOT NULL,
przedmiot3 varchar(12) NOT NULL,
przedmiot4 varchar(12) NOT NULL);

Może przedstawie to wizualnie:


[url=http://img8.imageshack.us/my.php?image=kolumnanj1.jpg][img]http://img8.imageshack.us/img8/1940/kolumnanj1.th.jpg[/img][/url]

Czy mogę wykorzystać wartości z INSERT....VALUES(przedmiot1/2/3/4) , żeby na pewien czas były nazwami kolumn, czy musze do tego tworzyc nową tabelke?  Bo już jedną mam z nazwami w VALUES, ale nie mam z nazwami jako kolumny, a to mi jest teraz [potrzebne i nei wiem czy jest sens tworzenia od nowa tabelki z tymi nazwami kolumn, no chyba, że innego wyboru nie ma :( ?]]></description>
			<author><![CDATA[dummy@example.com (tomboy)]]></author>
			<pubDate>Wed, 04 Feb 2009 18:36:15 +0000</pubDate>
			<guid>https://forum.postgresql.org.pl/viewtopic.php?pid=522#p522</guid>
		</item>
	</channel>
</rss>
