PDA

Zobacz pełną wersję : Zapytanie SQL - MS Access



etygrys
30-05-07, 00:23
Witam
Mam pewien problem
Otoz mam tabele, gdzie istnieje 11 kolumn o nazwie miasto oraz ulica_x, gdzie x to kolejny numer do 10

miasto | ulica_1 | ulica_2 | ... |ulica_10

Problem polega na tym, ze musze zlozyc zapytanie o liczbe powtarzajacych sie nazw ulic. Czyli - ile nazw ulic sie powtarza:(

Mam pewien problem - radze sobie, o ile nazwa ulica powtarza sie w jednej kolumnie.
Natomiast jesli nazwa powtarza sie w kolumnie ulica_1 oraz ulica_2 (oczywiscie w roznych rekordach) nie moge sobie poradzic. I tu prosze o pomoc. Jak zliczyc powtorzenia np. dla sytuacji:

miasto | ulica_1 | ulica_2 |

Warszawa | Krakowska | Poznanska |
Poznan | Wroclawska| Krakowska
Zabrze | Gliwicka | Krakowska |

Golym okiem widac, ze wystepuje powtorzenie nazwy Krakowska, a wiec ilosc powtorzen to 1. (wystepuje jedno powtorzenie nazw ulic - Krakowska, niewazne ze w tabeli zostalo powtorzone to 3 razy, nazw powtarzajacych sie jest jedna)

jak wy to widzicie?

macol
30-05-07, 01:11
imo źle zaprojektowana jest ta baza...

Ja bym stworzył trzy tabele(wiele do wielu):

1. miasto | id_miasta
2. ulica | id_ulicy
3. id_miasta | id_ulicy

Następnie to odpowiednio powiązać (http://www.access.best4u.pl/accrelacje.html)a potem w tabeli trzeciej jedynie sprawdzać czy dla określonego id_ulicy jest więcej niż jedno wystąpienie.

etygrys
30-05-07, 07:36
no wlasnie mam takie, a nie inne zadanie:(

nie jest to w pelni relacyjna baza danych, a jedynie zadanie do accessa. I nie wiem jak to ugryzc.
Zgadzam sie, ze jesli bylaby to relacyjna baza danych zadanie jest banalne.
Ale co w tym przypadku???

doderic
30-05-07, 08:18
Proponuję przetworzyć listę ulic w trochę bardziej strawną:


select miasto, ulica_1 as ulica from tabela
union
select miasto, ulica_2 as ulica from tabela
union
select miasto, ulica_3 as ulica from tabela
...

Otrzymasz tabelę: miasto | ulica ze wszystkimi ulicami. :)

Na tej podstawie już można bez większych problemów wyciągnąć duplikaty:

select miasto, ulica, count(ulica) as ile from ListaMiast group by miasto, ulica

Może być taki sposób? 8)

etygrys
30-05-07, 09:51
to byl strzal w dziesiatke. Pozamykalem wszystko w jednym zapytaniu. Dziekuje bardzo:)