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.)
[Access] operacja z powtarzającymi się wartościami w tabeli
-
- 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
Aby wyświetlić jedynie powtarzające się rekordy można skorzystać z zapytania
SELECT pole FROM tabela
GROUP BY pole
HAVING COUNT(pole) > 1
SELECT pole FROM tabela
GROUP BY pole
HAVING COUNT(pole) > 1
- Vigl
- 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
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!
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!
-
- 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
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