Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Microsoft SQL Server / MSDE _ Wyświetlenie rekordów różnych od pozostałych

Napisany przez: mattiuss10121 26.12.2016, 23:30:14

Witam, głowie się od kliku dni i nie mogę wpaść na pomysł jak zbudować zapytanie. Nie jestem orłem w tym temacie a na SQL siadłem po dłuższej przerwie....
Mój problem polega na:
Mam tabelę KLIENCI w której są kolumny: ID (klucz główny), ID_MAGAZYNU, IMIĘ NAZWISKO, INDEKS_KAT, INDEKS_HAN.
Chodzi tutaj o to że jest klika magazynów w których są zapisani klienci i ktoś przez przypadek wpisał (nie jeden przypadek a wiele) pod ten sam INDEKS_KAT inne imię i nazwisko jak w pozostałych magazynach.
Moje pytanie i wielka prośba zarazem jak skonstruować zapytanie aby wyświetlić wszystkie kolumny z tabeli KLIENCI którzy mają ten sam INDEKS_KAT ale inne imię i nazwisko.
Lub chociaż proszę o naprowadzenie jakimi funkcjami konstruować zapytanie ale bardzo fajnie by było jakby ktoś pomógł mi skonstruować to zapytanie.
TABELA KLIENCI
ID | ID_MAGAZYNU | IMIĘ NAZWISKO | INDEKS_KAT | INDEKS_HAN
1 | 1 | JAN KOWALSKI | KAT0001 | HAN0001
2 | 2 | JAN KOWALSKI | KAT0001 | HAN0001
3 | 3 | JAN KOWALSKI | KAT0001 | HAN0001
4 | 4 | EWA KOWALSKA | KAT0001 | HAN0001
5 | 1 | MARCIN NOWAK | KAT0002 | HAN0002
6 | 2 | MARCIN NOWAK | KAT0002 | HAN0002
7 | 3 | KAMIL NOWAK | KAT0002 | HAN0002
8 | 4 | MARCIN NOWAK | KAT0002 | HAN0002
............

Bardzo proszę o pomoc i góry dziękuje

Napisany przez: trueblue 27.12.2016, 13:27:04

A które nazwiska uznajesz za różne w zestawieniu:
KAMIL NOWAK | KAT0002
MARCIN NOWAK | KAT0002
obydwa, czy jedno z nich. Jeśli jedno, to które i dlaczego?

Napisany przez: mmmmmmm 27.12.2016, 15:29:20

SELECT * FROM KLIENCI WHERE INDEKS_KAT IN (SELECT INDEKS_KAT FROM KLIENCI GROUP BY INDEKS _KAT HAVING Count(DISTINCT [IMIĘ NAZWISKO])>1)

Napisany przez: mattiuss10121 27.12.2016, 22:59:31

Dziękuje wam za każdą pomoc i dziękuję mmmmmmm za zapytanie, działa tylko nie jestem pewien do końca co wypisuje...
trueblue chodzi o wypisanie tych unikatowych czyli:
4 | 4 | EWA KOWALSKA | KAT0001 | HAN0001
7 | 3 | KAMIL NOWAK | KAT0002 | HAN0002

Jak jeszcze przeczytasz mmmmmmm ten post to proszę powiedz mi czy dobrze rozumiem skonstruowane zapytanie:
WYPISZ WSZYSTKO Z TABELI KLIENCI GDZIE INDEKS KATALOGOWY JEST (INDEKSEM KATALOGOWYM ALE Z UNIKATOWYM IMIENIEM I NAZWISKIEM)
Jeśli tak to super exclamation.gif! bo samemu jest mi to trudno ocenić co ono wypisuje gdyż jest 9 magazynów * 30 000 klientów.

Proszę podpowiedzcie mi jeszcze czy dobrze myślę używając tego select'a i ustawiając kursor aby zmienić indeksy KATALOGOWE I HANDLOWE które będą stanowiły przedrostek np RE + licznik z petli WHILE czy jakoś to inaczej da się zrobić (np nie używając kursora a użyć np. przedrostek RE + KLUCZ GŁÓWNY tylko nie mam pojęcia jak to zrobić)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)