[Access] operacja z powtarzającymi się wartościami w tabeli

Awatar użytkownika
Vigl
Użytkownik
Użytkownik
Posty: 283
Rejestracja: 28 wrz 2007, o 12:19
Płeć: Mężczyzna
Lokalizacja: Krosno/Kraków
Podziękował: 13 razy
Pomógł: 67 razy

[Access] operacja z powtarzającymi się wartościami w tabeli

Post autor: Vigl »

Chciałbym zrobić, aby po kliknięciu na przycisk, wyświetliły się tylko takie rekordy, w których wartość jednego z pól się powtórzyła. Czyli np. dla tabeli:
1. kot miau 2000
2. pies hau 2001
3. puma miau 2225
Chciałbym dostać w wyniku rekordy 1. i 3. A dokładniej rzecz biorąc tylko "miau".

Wiem, że w SQL jest funkcja COUNT() zwracająca ilość zliczeń czegoś tam, ale nie do końca potrafię jej tutaj użyć. A jeżeli potrafię, to coś mi się wysypuje przez głupiego Visual Basica (próbowałem tę ilość zliczeń zapisać do jakiejś zmiennej, a potem zrobić warunek w VB, ale problem z typami zmiennych i ich ewentualną konwersją okazał się nie do przeskoczenia). Jakieś pomysły? (Nie będę wrzucał swojego kodu, bo jest go niewiele, nie działa, a prawdopodobnie i tak jest przekombinowany i po prostu nie tędy droga.)
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

[Access] operacja z powtarzającymi się wartościami w tabeli

Post autor: smiechowiec »

Aby wyświetlić jedynie powtarzające się rekordy można skorzystać z zapytania
SELECT pole FROM tabela
GROUP BY pole
HAVING COUNT(pole) > 1
Awatar użytkownika
Vigl
Użytkownik
Użytkownik
Posty: 283
Rejestracja: 28 wrz 2007, o 12:19
Płeć: Mężczyzna
Lokalizacja: Krosno/Kraków
Podziękował: 13 razy
Pomógł: 67 razy

[Access] operacja z powtarzającymi się wartościami w tabeli

Post autor: Vigl »

Dzięki, jest oczywiście OK, ale niestety muszę zrobić coś jeszcze innego...

Modyfikacja i rozbudowanie powyższego problemu - na przykładzie, teraz się bez niego nie obejdzie:
TAB_1 - pola: ID_1, imie, naz
TAB_2 - ID_2, nazwa
TAB_3 - tablica określająca relacje między powyższymi (dajmy na to przynależność człeka z TAB_1 do organizacji z TAB_2)
Załóżmy, że TAB_3 wygląda tak:
ID_1 | ID_2
1 | 1
1 | 2
2 | 3
3 | 4
I teraz chciałbym wyselectować jedynie takie rekordy z TAB_1, które są powiązane z więcej niż jednym rekordem z TAB_2 - a więc tutaj; rekord o ID_1=1.

Muszę zaznaczyć, że docelowo chciałbym zrobić tak, by dla dwóch nazw z TAB_2 podanych przez usera, program zwracał mi odpowiednie dane z TAB_1, spełniające ten warunek, który powyżej opisałem. Ale jeżeli będę miał ogólne zapytanie SQL, które zrobi odpowiedniego SELECT-a, to z resztą już sobie poradzę.

Mam nadzieję, że da się coś takiego zrobić.
Z góry dzięki za odpowiedzi!
smiechowiec
Użytkownik
Użytkownik
Posty: 374
Rejestracja: 21 cze 2007, o 11:28
Płeć: Mężczyzna
Lokalizacja: Łostowice
Pomógł: 146 razy

[Access] operacja z powtarzającymi się wartościami w tabeli

Post autor: smiechowiec »

Myślę, że wystarczy zwykłe złączenie TAB_1 i TAB_3

Kod: Zaznacz cały

SELECT TAB_1.imie, TAB_1.naz
FROM TAB_3, TAB_1
WHERE TAB_1.ID_1 = TAB_3.ID_1
GROUP BY TAB_1.ID_1, TAB_1.imie, TAB_1.naz
HAVING COUNT(TAB_1.ID_1) > 1
ODPOWIEDZ