Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

selektovanje ??

[es] :: Firebird/Interbase :: selektovanje ??
(Zaključana tema (lock), by chachka)
Strane: 1 2 3

[ Pregleda: 8950 | Odgovora: 45 ] > FB > Twit

Postavi temu

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.ADSL.neobee.net.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: selektovanje ??27.10.2007. u 09:42 - pre 200 meseci
Zbog sporosti izvrsavanja takvih upita sam ja digao ruke od InterBase/Firebird-a :)

Probaj:
Code:
SELECT u1.*
  FROM ulaz u1
 WHERE EXISTS (SELECT u2.ime
                 FROM ulaz u2
                WHERE u2.ime = u1.ime
                GROUP BY u2.ime
               HAVING COUNT(u2.ime) > 1)
 ORDER BY u1.ime

"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??27.10.2007. u 11:52 - pre 200 meseci
@delalt
kako mislis indekse po koloni "ime" u svim tabelama ,mozez malo pojasniti sta sam trebao napraviti tj.mozda i jesam samo ne znam sta pitas,ipak sam pocetnik ???

> Zatim gledaj kako da drugačije napišeš upit, ako oni indeksi ne pomognu, razlika u brzini može biti ogromna.

zato sam i pitao vas jer ne znam kako postaviti drugaciji upit.

@chachka
na sta si presao kada si batali FB i IB i koliko je brze ??
odlican napredak sa tvojim upitom, treba 43sek a sa mojim 3,05min

i oped pitanje
kod selektovanja sa LIKE iz nekog Tedit-a moze li se nekako zanemariti velika i mala slova da selektuje sve i sa velikim i sa malim npr: Pera isto kao pera
SELECT * FROM TABELA WHERE NEKO_POLJE LIKE '''+AnsiQuotedStr(edit.text,'%')+'''

[Ovu poruku je menjao Brkic dana 27.10.2007. u 13:18 GMT+1]
 
0

chachka
Srđan Mijatov
Programer
BUS Computers
Kikinda

Član broj: 53780
Poruke: 576
*.simex-su.co.yu.

Sajt: www.baze-podataka.net


+4 Profil

icon Re: selektovanje ??27.10.2007. u 12:10 - pre 200 meseci
Presao sam na PostgreSQL 8.

Brzina zavisi, ali recimo na primeru tog upitu kojeg ti FB/IB radi 2 i po minuta, PostgreSQL bi odradio ispod pola sekunde (sto vec ulazi u zonu poredjenja sa Oraclom ili MS SQL Serverom). Neke upite sa podupitima FB/IB ni ne moze da odredi ili mu trebaju bukvalno sati da ih uradi, pa je poredjenje sa ostalim serverima cak i nemoguce.

Govorim o mojim iskustvima sa FB 1.5 i IB 6.0.2, koliko cujem FB 2 je uznapredovao ali nemam iskustva sa njim (niti nameravam).
"The best code is no code at all."
- Zidar (ES član)
"Biggest obstacle to learning
SQL is unlearning procedural
programming."
- Joe
Celko
"Minimize code, maximize data."
- A. Neil Pappalardo
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??27.10.2007. u 13:29 - pre 200 meseci
@chachka moze li pomoc i oko ovog upita ne bi radilo brze,isto treba oko 2.5-3 min

selektuje sva imena kojih nema u ulaznoj tabeli

'SELECT * FROM promene WHERE Ime not in (SELECT Ime FROM ulaz)'


Reci mi sto se tice PostgreSQL-a,video sam da ZEOS komponente sa kojima radim u FB podrzavaju i PostgreSQL7 i 8. Nasao ga na internetu i oko 25-26 mb. Da li posle instalacije treba nesto podesavati ...? Kako se na client racunaru instalira,isto kao i na serveru ili ?? Mogu li na jednom racunaru biti instalirana i FB i PostgreSQL ili FB moram skinuti ??
 
0

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: selektovanje ??27.10.2007. u 13:35 - pre 200 meseci
> kod selektovanja sa LIKE iz nekog Tedit-a moze li se nekako zanemariti velika i mala slova da selektuje sve i sa velikim i sa malim npr: Pera
> isto kao pera SELECT * FROM TABELA WHERE NEKO_POLJE LIKE '''+AnsiQuotedStr(edit.text,'%')+'''

LIKE je prema SQL standardu case sensitive, case insensitive je CONTAINING. Ako imaš FB 2 onda možeš koristiti i indeksirane izraze (indeksiraš po UPPER(POLJE)).
 
0

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: selektovanje ??27.10.2007. u 13:48 - pre 200 meseci
> Brzina zavisi, ali recimo na primeru tog upitu kojeg ti FB/IB radi 2 i po minuta, PostgreSQL bi odradio ispod pola sekunde (sto vec ulazi u zonu
> poredjenja sa Oraclom ili MS SQL Serverom). Neke upite sa podupitima FB/IB ni ne moze da odredi ili mu trebaju bukvalno sati da ih uradi, pa
> je poredjenje sa ostalim serverima cak i nemoguce.
> Govorim o mojim iskustvima sa FB 1.5 i IB 6.0.2, koliko cujem FB 2 je uznapredovao ali nemam iskustva sa njim (niti nameravam).

FB ima lošiji kveri optimizator nego SQL/ORAQLE, međutim ako se upit napiše kako treba brzina izvršavanja je sasvim uporediva sa bilo kojom od njih.
Ako se razvija program koji treba da se izvršava na više RDBMS, onda to može da bude problem naročito za one koji su navikli na MS SQL. Ako se program razvija za FB ili sa FB kao osnovom, onda se dobijaju odlični rezultati (i upit optimizovan za FB će se dobro izvršavati i na drugim serverima).
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??27.10.2007. u 15:45 - pre 200 meseci
> LIKE je prema SQL standardu case sensitive, case insensitive je CONTAINING

nigde nisam nasao kako se koristi CONTAINING,kada umesto LIKE stavim CONTAINING ne pravi gresku ali ni ne radi,tj ne daje resenje.
Pregledavao sam sat vremena internet inigde neki primer sa CONTAINING.

moze li pomoc ??
 
0

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: selektovanje ??27.10.2007. u 17:11 - pre 200 meseci
> nigde nisam nasao kako se koristi CONTAINING,kada umesto LIKE stavim CONTAINING ne pravi gresku ali ni ne radi,tj ne daje resenje.


http://www.janus-software.com/...ual.php?book=psql&topic=83
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??27.10.2007. u 17:51 - pre 200 meseci
moja greska korisio sam da CONTAINING pretrazuje sa '''+AnsiQuotedStr(pret.text,'%')+''' a tu ima % i normalno da nije nista nasao,nisam znao da ne treba % kao kod LIKE.

Hvala na pomoci.
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??05.11.2007. u 22:16 - pre 200 meseci
Opet mi treba pomoc oko upita...

2 tabele imaju iste kolone/ime,broj1,broj2/ , trebalo bi mi da se mogu selektovati sva imena=pera prvo iz 1 tabele pa ako moze prazan red ili da se nekako naznaci,odvoji 1 i druga 2 tabela, pa onda selekcija iz 2 tabele

moze li ovako nesto ??
 
0

schild
Dejan Šild
TopCode Software
Subotica

Član broj: 59888
Poruke: 138
*.legendww.com.

Sajt: www.topcode.rs


+2 Profil

icon Re: selektovanje ??06.11.2007. u 06:18 - pre 200 meseci
Citat:
Brkic: Opet mi treba pomoc oko upita...

2 tabele imaju iste kolone/ime,broj1,broj2/ , trebalo bi mi da se mogu selektovati sva imena=pera prvo iz 1 tabele pa ako moze prazan red ili da se nekako naznaci,odvoji 1 i druga 2 tabela, pa onda selekcija iz 2 tabele

moze li ovako nesto ??

recimo ovako:
Code:
select p1.* from tabela1 p1 where p1.ime='pera' and p1.ime<>'razmak'
union all
select r.* from tabela1 r where r.ime='razmak'
union all
select p2.* from tabela2 p2 where p2.ime='pera'
gde imas slog u tabeli1 sa imenom 'razmak', koji ti sluzi za to razdvajanje. Mislim, glup je primer ali cisto neka ideja.
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??06.11.2007. u 10:51 - pre 200 meseci
schild hvala na pomoci,
selektuje iz obe tabele ali ne pravi razmak.
moze li nekako drugacije napraviti razmak ??
 
0

dogriz
Sombor

Član broj: 29744
Poruke: 259
89.216.227.*

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: selektovanje ??06.11.2007. u 11:20 - pre 200 meseci
Razmak može ovako:
Code:

select p1.*, '              ' as razmak from .....

ako sam dobro shvatio šta ti treba
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??06.11.2007. u 12:47 - pre 200 meseci
dogriz probao sam tvoj predlog i ne radi,umesto razmaka moze i da pise 'tabela2'
treba ovako nekako da bude prikazano ako moze

tabela1
...
...
...
tabela2
...
...
...
 
0

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: selektovanje ??06.11.2007. u 19:13 - pre 200 meseci
> dogriz probao sam tvoj predlog i ne radi,umesto razmaka moze i da pise 'tabela2'
> treba ovako nekako da bude prikazano ako moze
> tabela1
> ...
> ...
> ...
> tabela2

Evo ti primer za upit koji vraća dva polja:

select id, naziv from artikli where id < 50
union all
select 12345, cast('primer' as varchar(30)) from rdb$database
union all
select id, naziv from artikli where id < 50

Ključ je da se u tom hack slogu nalaze sva polja kao i u pravim upitima i da budu identičnog tipa. Ako imaš dosta polja, verovatno ti je lakše a ovo odradiš na klijentu.

 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??06.11.2007. u 20:43 - pre 200 meseci
nisam resio problem,nece da proradi

probacu nekako drugacije,da selekciju izvrsim na jednom query pa prepisem podatke u drugi i ubacim prazne redove,to je sporije ali provereno radi.

Hvala vam na trudu.
 
0

dogriz
Sombor

Član broj: 29744
Poruke: 259
89.216.227.*

Sajt: dogriz.blogspot.com


+6 Profil

icon Re: selektovanje ??07.11.2007. u 07:01 - pre 200 meseci
Code:

SELECT 'TABELA1' AS OZNAKA_TABELE, C1.* FROM CLANOVI C1 WHERE C1.POL = 0
UNION ALL
SELECT 'TABELA2' AS OZNAKA_TABELE, C2.* FROM CLANOVI C2 WHERE C2.POL = 1

Kao rezultat dobija se:
TABELA1 C1.Polje1 C1.Polje2 C1.Polje3 ...
TABELA1 C1.Polje1 C1.Polje2 C1.Polje3 ...
TABELA1 C1.Polje1 C1.Polje2 C1.Polje3 ...
TABELA2 C2.Polje1 C2.Polje2 C2.Polje3 ...
TABELA2 C2.Polje1 C2.Polje2 C2.Polje3 ...
 
0

Brkic

Član broj: 55360
Poruke: 1222
*.dynamic.sbb.co.yu.



Profil

icon Re: selektovanje ??07.11.2007. u 09:59 - pre 200 meseci
dogriz funkcionise,
hvala na predlogu moze i tako ta bude.
 
0

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: selektovanje ??07.11.2007. u 10:16 - pre 200 meseci
> nisam resio problem,nece da proradi
> probacu nekako drugacije,da selekciju izvrsim na jednom query pa

Onda si nešto loše napisao, pokaži tačan tekst upita koji si koristio i definicije polja.

 
0

Miloš Baić
Miloš Baić
ERP (Dynamics NAV) programer
Beograd

Član broj: 72468
Poruke: 1155
*.dialup.neobee.net.



Profil

icon Re: selektovanje ??07.11.2007. u 10:42 - pre 200 meseci
Ukoliko želiš dobiti ovako nešto:
IME |TABELA
----------
Pera|tabela1
----------
Pera|tabela2
Pera|tabela2

Firebird 2.0:
Code:

create table TABELA_1 (
 ime varchar(30),
 broj_1 integer,
 broj_2 integer
);

create table TABELA_2 (
 ime varchar(30),
 broj_1 integer,
 broj_2 integer
);

insert into TABELA_1 values ('Pera', 1, 1);
insert into TABELA_1 values ('Djoka', 1, 2);
insert into TABELA_1 values ('Mika', 1, 3);

insert into TABELA_2 values ('Pera', 1, 1);
insert into TABELA_2 values ('Djoka', 1, 2);
insert into TABELA_2 values ('Mika', 1, 3);
insert into TABELA_2 values ('Pera', 1, 4);

Upit:
Code:

select ime, 'tabela1' as tabela
from tabela_1
where ime = 'Pera'

union all

select cast('---' as varchar(30)),
        cast('---' as varchar(7))
from rdb$database

union all

select ime, 'tabela2'
from tabela_2
where ime = 'Pera'

Rezultat:


Edit: upotrebio sam cast, ispravnije je.

[Ovu poruku je menjao Miloš Baić dana 07.11.2007. u 12:51 GMT+1]
Someone's sitting in the shade today because someone planted a tree a long time ago.
Prikačeni fajlovi
 
0

[es] :: Firebird/Interbase :: selektovanje ??
(Zaključana tema (lock), by chachka)
Strane: 1 2 3

[ Pregleda: 8950 | Odgovora: 45 ] > FB > Twit

Postavi temu

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.