uzupełnienie brakujących kodów pocztowych |
uzupełnienie brakujących kodów pocztowych |
30.12.2011, 10:38:36
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) |
Witam,
Potrzebuje pomocy. mam tabelę o nazwie adres w której mam dane teleadresowe klientów( kolumny: imie, nazwisko, miejscowosc,ulica, rokurodzenia, kodpocztowy) Mam dla Gdańska przypisane różne kody pocztowe dla klientów wg ulic wg danych z poczty polskiej. Problem w tym ze jeden rokurodzenia='1978' nie ma przypisanych kodów pocztowych. Chciałbym przypisać rocznikowi 1978 kodpocztowe z pozostałych roczników ale z dopasowaniem do ulic. Rekordy obecnie wygladają tak: Jan Nowak, Gdańsk, Grunwaldzka ,1967,80-170 Janina Nowak, Gdańsk, Grunwaldzka,1978, 00-00 Sylwia Kowalska, Gdańsk, Ślepa ,1947,80-169 Karola Nowaczyk, Gdańsk, Ślepa,1978, 00-00 a powinny tak: Jan Nowak, Gdańsk, Grunwaldzka ,1967,80-170 Janina Nowak, Gdańsk, Grunwaldzka,1978, 80-170 Sylwia Kowalska, Gdańsk, Ślepa ,1947,80-169 Karola Nowaczyk, Gdańsk, Ślepa,1978, 80-169 Ręcznie ciężko to zrobić ,bo to ponad 3 tyś rekordów. jakiej funkcji uzyć, bo warunek sqla pewnie będzie taki?: where miejscowosc='Gdańsk' and kodpocztowy='00-000' and rokurodzenia='1978' z góry dzięki za pomoc. |
|
|
30.12.2011, 11:22:02
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów |
A ciężko przetestować...?
-------------------- ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW! |
|
|
30.12.2011, 11:33:33
Post
#3
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Nie testowałem w Postgresie, ale MySQL pozwala w UPDATE JOINować do tabeli modyfikowanej, ale jeśli to ta sama to chyba i tak by zablokowało z tego co kojarzę... Tutaj musiałbyś przy SET kodpocztowy ustawić kodpocztowy wybierany SELECTem zgodnym z ulicą i miastem rekordu zmienianego, ale różnym kodem od 00-000 i stąd własnie wygodne byłoby złączenie JOINem obu: zmienianej i przeszukiwanej. Niestety nie używałem Postgressa więc nie wiem czy on takie złączenie wspiera a jeśli tak, to czy zezwalana taki UPDATE :/
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
30.12.2011, 12:46:36
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) |
kombinowałem update set, insert into, nawet poprzez copy do tabeli tempowej ale nic nie pomogło.
Nie mam zielonego pojęcia. |
|
|
30.12.2011, 14:41:55
Post
#5
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
Zwykły UPDATE + SELECT:
Tylko nie jestem pewien, czy te puste wartości kodu pocztowego, to u Ciebie 00-000, czy 00-00. Oczywiście to przy założeniu, że w Gdańsku nie ma dwóch ulic o takiej samej nazwie (bo z tym się spotkałem). |
|
|
1.01.2012, 22:55:04
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) |
Zwykły UPDATE + SELECT:
Tylko nie jestem pewien, czy te puste wartości kodu pocztowego, to u Ciebie 00-000, czy 00-00. Oczywiście to przy założeniu, że w Gdańsku nie ma dwóch ulic o takiej samej nazwie (bo z tym się spotkałem). Wygląda to całkiem nieźle. Zabraklo "as" w from adres a1 i w warunku WHERE adres.kodpocztowy = '00-000' powinno byc jeszcze adres.miejscowosc='Gdańsk' Gdy uruchamiam to query to dostaje komunikat z błędem : BŁĄD: pusta wartość w kolumnie "kodpocztowy" narusza ograniczenie wymaganej wartości |
|
|
1.01.2012, 23:48:32
Post
#7
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) |
AS nie jest wymagane (a1 automatycznie staje się aliasem), warunku w klauzuli WHERE rzeczywiście zabrakło.
Komunikat błędu sugeruje, że któraś z ulic w ogóle nie ma nadanego właściwego kodu pocztowego. Pobieramy zatem wartość NULL, której użyć nie możemy ze względu na ograniczenia wprowadzone na kolumnę kodpocztowy. Sprawdź to. Ten post edytował mortus 1.01.2012, 23:50:10 |
|
|
2.01.2012, 09:29:34
Post
#8
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 0 Dołączył: 20.01.2009 Ostrzeżenie: (0%) |
AS nie jest wymagane (a1 automatycznie staje się aliasem), warunku w klauzuli WHERE rzeczywiście zabrakło. Komunikat błędu sugeruje, że któraś z ulic w ogóle nie ma nadanego właściwego kodu pocztowego. Pobieramy zatem wartość NULL, której użyć nie możemy ze względu na ograniczenia wprowadzone na kolumnę kodpocztowy. Sprawdź to. Bingo. W PGAdminei wyłaczyłem opcje dla kolumny kodpocztowy NIE NULL i zadzialało. Okazało się ze przy 3 ulicach na 3 tysiące rekordów nie mógł dopasować gdyż w nazwie ulicy Gen. Hallera nie było kropki po Gen. dzięki za pomoc. |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 05:52 |