Strona 1 z 1
zmiana wartości z tabeli 1 na wartości z tabeli 2
: śr lut 05, 2014 11:35 am
autor: nowicjusz
Tabela 1 ma 3 kolumny w każdej znajdują się różne liczby ( liczby nie powtarzają się w tym samym wierszu , powtarzają się w kolejnym ) ilość wierszy np 500 .
Tabela 2 ma 2 kolumny
- w pierwszej są liczby które występują w Tabeli 1 ( ilość wierszy ) np 25 - mniej wierszy .
- w drugiej są liczby które chciałbym wstawić do Tabeli 1 na zasadzie takiej :
Tabela 1
1 2 3 - kolumny
10 15 25
12 14 17
18 19 20
.....
Tabela 2
1 2 - kolumny
10 2
17 3
19 4
Wynik kwerendy powinien być taki że :
jezeli w Tabeli 1 w kolumnie 1 i wierszu 1 jest liczba 10 to zamieniana jest na liczbę 2 z Tabeli 2 kolumny 2
jezeli w Tabeli 1 w kolumnie 3 i wierszu 2 jest liczba 17 to zamieniana jest na liczbę 3 z Tabeli 2 kolumny 2 i tak samo dalej 19 to 4 itp .
Chodzi o to aby stworzyć kwerendę która dopasuje Do liczb z Tabeli 1 Takie same wartości z Tabeli 2 kolumny 1 i zamiast nich wstawi te z tego samego wiersza z Tabeli 2 z kolumny 2 .
Re: zmiana wartości z tabeli 1 na wartości z tabeli 2
: śr lut 05, 2014 12:17 pm
autor: Jan_J
Kwerenda === zapytanie === konstrukcja składniowa umożliwiająca pobranie danych z bazy. Z którymi to danymi można potem zrobić co się chce. Realizację żądań pobrania danych zapewnia polecenia SELECT.
Jeżeli chodzi o wstawianie do tabel, to jest to nieco inny rodzaj operacji.
* wstawianie rekordów z innej tabeli / struktury: SELECT FROM .... INTO ...
* wstawianie rekordów z zewnątrz: INSERT INTO tabela VALUES (...)
* aktualizacja istniejących rekordów tabeli: polecenia UPDATE ma kilka różnych składni. Składnia podstawowa patrz np.
http://www.w3schools.com/sql/sql_update.asp. Użycie podzapytań, patrz np. google: sql update from subquery
Re: zmiana wartości z tabeli 1 na wartości z tabeli 2
: śr lut 05, 2014 3:21 pm
autor: nowicjusz
Niestety nie mogę sobie z tym poradzić chociaż zadanie wydaje się proste i przykłady z google zrozumiałe .
Nie działa INTO , nawet nie mogę zrobić kopi tabeli którą mam np tak :
SELECT *
INTO "TEST" - chyba powinno pobrać wszystko z tabeli T1 i utworzyć nowa tabela TEST
FROM "T1"
Nie kombinuję z INSERT bo podobno trzeba podać ścieżkę do bazy danych a to wydaje mi się już bardziej skomplikowane

Próbowałem na przykładach zamieszczonych w google i nie mogę sobie z tym poradzić .
EWENTUALNIE COŚ TAKIEGO
INSERT INTO "T1"."1" ,"T1"."2" ,"T1"."3" - wstawia do kolumn z tabeli T1
SELECT "T2"."2" - wybrane wartości z kolumny 2 Tabeli T2
FROM "T1" , "T2"
WHERE "T"."1" = "T2"."1" - gdzie z tabeli T2 kolumna 1 równa jest kolumnie 1 z tabeli T1
Nie działa
-
Re: zmiana wartości z tabeli 1 na wartości z tabeli 2
: śr lut 05, 2014 5:38 pm
autor: Jan_J
SELECT FROM pierwsza INTO druga utworzy w drugiej pełne nowe rekordy.
UPDATE zastąpi zawartość istniejących rekordów.
Edytor kwerend Base może mieć ograniczenia na składnię SELECT INTO. Zaś UPDATE nie jest kwerendą, i jeżeli czymś ją wymuszać w środowisku Base, to obawiam się, że albo bezpośrednim SQL, albo makrem. Ale mogę nie mieć racji.
Re: zmiana wartości z tabeli 1 na wartości z tabeli 2
: śr lut 05, 2014 6:21 pm
autor: nowicjusz
Z Bazy Danych wybieram Kwerendy i Utwórz Kwerendę za pomocą SQL
Być może są jakieś ograniczenia i chyba nie ma sensu drążyć tego tematu dalej .
W arkuszu poradziłem sobie z tym problemem .
Tabela 1 to komórki od A4:C504 ( to są te 3 kolumny o których mówiłem w Base )
Tabela 2 to komórki od A1:J2 gdzie pierwszy wiersz A1:J1 to liczby które znajdują się w Tabeli 1 A4:C504 a drugi wiersz A2:J2 to tak jakby kod czyli wartości od
1 do 5 na tej zasadzie że komórce A1 równiej 10 odpowiada komórka A2 równa 1 potem na tej zasadzie wszystkie B1 ma odpowiednik W B2 i C1 w C2
Tworze 3 arkusze dla sprawdzenia każdego A4: , każdego B... i każdego C... dla zakresu A1:J1 i jeżeli $A4=A$1 ; A$2 ; 0
W ten sposób mam 3 arkusze i przypisaną do nich jedną liczbę w każdym wierszu dla A , B i C - w komórce dodatkowej mam sumę każdego wiersza w arkuszu a suma musi być równa z tą liczbą z zakresu A2:J2 bo wszystkie pozostałe komórki to 0 .
W ten sposób mam pod liczby z Tabeli 1 podstawione liczby z zakresu A2:J2 - swego rodzaju podmiana liczb . ( to tak nawiasem mówiąc )