Zapytanie do bazy
maniek - 17-06-2007 00:18
Zapytanie do bazy
Mam tabela A która posiada pola ulica, nr domu , nr lokalu
Jak stworzyc zapytanie aby wypisa? tylko te rekordy które posiadaja takie same elementy ulicy, nr domu, nr lokalu.
Grzegorz Danowski - 17-06-2007 00:18
"maniek" <grzegorzu@alfa.juni.gliwice.pl> wrote in message news:f45uu8$756$1@news.task.gda.pl... > Mam tabela A która posiada pola ulica, nr domu , nr lokalu > > Jak stworzyc zapytanie aby wypisa? tylko te rekordy które posiadaja takie > same elementy ulicy, nr domu, nr lokalu.
Zacznij od zapytania, które wybiera te kombinacje przeszukiwanych przez Ciebie pól, które wyst?puj? wi?cej ni? jeden raz:
Select Ulica, NrDomu, NrLokalu, Count(*) As LiczbaWystapien From TwojaTabela Group By Ulica, NrDomu, NrLokalu Having Count(*) > 1
Potem mo?esz sobie skomplikowa?, czyli wybra? pe?ne rekordy, ale z grupy powy?szej, czyli np.:
Select T.*, D.LiczbaWystapien From TwojaTabela As T Inner Join (Select Ulica, NrDomu, NrLokalu, Count(*) As LiczbaWystapien From TwojaTabela Group By Ulica, NrDomu, NrLokalu Having Count(*) > 1) As D On T.Ulica = D.Ulica And T.NrDomu = D.NrDomu And T.NrLokalu = D.NrLokalu
Mo?esz to sobie jeszcze posortowa?, czyli dodaj na ko?cu powyzszego: Order By T.Ulica, T.NrDomu, T.NrLokalu -- Pozdrawiam Grzegorz
Jacek Czapla - 17-06-2007 00:18
Grzegorz Danowski napisa?(a): > "maniek" <grzegorzu@alfa.juni.gliwice.pl> wrote in message > news:f45uu8$756$1@news.task.gda.pl... >> Mam tabela A która posiada pola ulica, nr domu , nr lokalu >> >> Jak stworzyc zapytanie aby wypisa? tylko te rekordy które posiadaja >> takie same elementy ulicy, nr domu, nr lokalu. > > Zacznij od zapytania, które wybiera te kombinacje przeszukiwanych przez > Ciebie pól, które wyst?puj? wi?cej ni? jeden raz: > > Select > Ulica, NrDomu, NrLokalu, Count(*) As LiczbaWystapien > From > TwojaTabela > Group By > Ulica, NrDomu, NrLokalu > Having > Count(*) > 1
Nie lepiej Having LiczbaWystapien > 1
B?dzie to mia?o jakie? znaczenie? Inaczej, czy ka?de wyst?pienie Count(*) wywo?uje akcje zliczania?
Grzegorz Danowski - 17-06-2007 00:18
"Jacek Czapla" <jczapla.pulapka@asit.pl> wrote in message news:f46ctn$sgp$1@news.onet.pl... >> Select >> Ulica, NrDomu, NrLokalu, Count(*) As LiczbaWystapien >> From >> TwojaTabela >> Group By >> Ulica, NrDomu, NrLokalu >> Having >> Count(*) > 1 > > Nie lepiej > Having > LiczbaWystapien > 1
IMHO nie wszystkie bazy obs?uguj? tak? konstrukcj? (te których ja u?ywam, czyli MS SQL i Access, nie).
> B?dzie to mia?o jakie? znaczenie? Inaczej, czy ka?de wyst?pienie Count(*) > wywo?uje akcje zliczania?
My?l?, ?e raczej nie, ale to pewnikiem kwestia konkretnego silnika. -- Pozdrawiam Grzegorz
Jacek Czapla - 17-06-2007 00:18
Grzegorz Danowski napisa?(a): > "Jacek Czapla" <jczapla.pulapka@asit.pl> wrote in message > news:f46ctn$sgp$1@news.onet.pl... >>> Select >>> Ulica, NrDomu, NrLokalu, Count(*) As LiczbaWystapien >>> From >>> TwojaTabela >>> Group By >>> Ulica, NrDomu, NrLokalu >>> Having >>> Count(*) > 1 >> >> Nie lepiej >> Having >> LiczbaWystapien > 1 > > IMHO nie wszystkie bazy obs?uguj? tak? konstrukcj? (te których ja > u?ywam, czyli MS SQL i Access, nie).
??? Zwyk?y alias, w having i grupowaniu powinno dzia?a?. W?a?ciwie to sprawdzi?em na szybko w MySQL i tam dzia?a tylko grupowanie musi by? na ko?cu.
> >> B?dzie to mia?o jakie? znaczenie? Inaczej, czy ka?de wyst?pienie >> Count(*) wywo?uje akcje zliczania? > > My?l?, ?e raczej nie, ale to pewnikiem kwestia konkretnego silnika.
Pewnie cachuje sobie wynik, ale i tak mo?e by? wolniej ni? skorzystanie z aliasu. Nie jestem superspecem, ale tak mi si? wydaje.
No i stopie? izolacji transakcji mo?e si? pewnie wtr?ci?(?).
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?=
=?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?=
[ms sql] =?ISO-8859-2?Q?wy=B6wietlenie_pierwszych_5_rekord?==?ISO-8859-2?Q?=F3w_z_zapytania_=3F_odpowiednik_ROWNUM_w_o?== ?ISO-8859-2?Q?raclu_dla_MS_SQL=27a?=
phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?=
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?=
[mysql/php] jak =?ISO-8859-2?Q?zliczy=E6_ilo=B6=E6_unikalnyc?==?ISO-8859-2?Q?h_rekord=F3w_w_jednym_zapytaniu=3F?=
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
mecze sie i mecze i nic - zapytanie czesciowe
zanotowane.pldoc.pisz.plpdf.pisz.plautwywalczyl.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|