Wzajemne sortowanie dwóch tabel względem wierszy

Użytkowanie programu bazodanowego
nowicjusz
Posty: 17
Rejestracja: ndz sty 19, 2014 12:51 am

Wzajemne sortowanie dwóch tabel względem wierszy

Post autor: nowicjusz »

Czy jest możliwość posortowania dwóch tabel jednocześnie względem wartości w wierszach ?
Dwie tabele T1 i T2 w każdej po 3 kolumny i taka sama ilość wierszy .

T1 - chciałbym ułożyć wartości od najmniejszej do największej w wierszu tzn jeżeli wiersz pierwszy ma wartości 10 25 15 w kolumnach 1 i 2 i 3
to chcialbym zmienić wartości na 10 15 25 w wierszu pierwszym i w każdym innym na takiej samej zasadzie przy czym wartości z tabeli drugiej również zmieniały by się w ten sposób .

Jeżeli w T1 należało w wierszy pierwszym zamienić wartości między kolumnami 3 i 2 to w Tabeli drugiej T2 też należy postąpić w ten sam sposób ( w drugiej tabeli liczby mogą być pomieszane , ważne aby zamieniły się miejscami tak jak w T1 )

Za to w T1 chciałbym ułożyć je wiersz po wierszu od lewej najmniejsze do prawej .

Liczby w T1 mogą się dublować tzn może być w kolumnie 1 wartość 5 w kolumnie 2 wartość 5 i w kolumnie trzeciej wartość 5 lub np tylko 2 duble

W calcu porównywałem pierwszą wartość z drugą i drugą z trzecią
tzn 1 < 2 < 3 wtedy pozostawiam bez zmian
1 < 2 > 3 zamienam miejscami 2 i 3 kolumnę ( wartość )
1 > 2 < 3 zamieniam miejscami 3 i 1 kolumnę ( wartość )
1 > 2 > 3 zamieniam wartości od prawej do lewej

nie wziąłem pod uwagę kiedy 1=2 lub 1=3 lub 2=3 i do tego nie potrafię zsynchronizować tej drugiej tabeli
OpenOffice.ux.pl.3.4 na Windows XP
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Wzajemne sortowanie dwóch tabel względem wierszy

Post autor: Jan_J »

W zasadzie w SQL nie ma działań ustalających kolejność pól w poszczególnych rekordach. Jeżeli taka potrzeba występuje, świadczy to zazwyczaj o złej organizacji danych (np. -> normalizacja).
Ale u siebie masz tylko 3 kolumny; raptem 6 możliwości. Można rozważyć pobranie odpowiedzi z bazy i uporządkowanie jej makrem.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
nowicjusz
Posty: 17
Rejestracja: ndz sty 19, 2014 12:51 am

Re: Wzajemne sortowanie dwóch tabel względem wierszy

Post autor: nowicjusz »

Jedna kolumna T1 polączona z wartościami z drugiej gdzie liczby znajdują się w kolumnach 1 , 2 , 3 a w kolumnach 4 5 6 znajdują się wartości które należy posortować i :
Kroków jest 6 :

1 szukanie 123 SELECT "T1"."1" , "T1"."2" , "T1"."3" FROM "T1" WHERE "T1"."4" = 1 and "T1"."5" = 2 and "T1"."6" = 3
2 szukanie 132 SELECT "T1"."1" , "T1"."3" , "T1"."2" FROM "T1" WHERE "T1"."4" = 1 and "T1"."5" = 3 and "T1"."6" = 2
3 szukanie 213 SELECT "T1"."2" , "T1"."1" , "T1"."3" FROM "T1" WHERE "T1"."4" = 2 and "T1"."5" = 1 and "T1"."6" = 3
4 szukanie 231 SELECT "T1"."2" , "T1"."3" , "T1"."1" FROM "T1" WHERE "T1"."4" = 2 and "T1"."5" = 3 and "T1"."6" = 1
5 szukanie 312 SELECT "T1"."3" , "T1"."1" , "T1"."2" FROM "T1" WHERE "T1"."4" = 3 and "T1"."5" = 1 and "T1"."6" = 2
6 szukanie 321 SELECT "T1"."3" , "T1"."2" , "T1"."1" FROM "T1" WHERE "T1"."4" = 3 and "T1"."5" = 2 and "T1"."6" = 1

Gdyby można było te utworzone w ten sposób 6 kwerend połączyć . np na zasadzie INSERT INTO lub innej dodać do nowej Tabeli kolejno kolumny z tych kwerend wtedy wynik był by posortowany od lewej do prawej tj :

1 2 3 i odpowiednio przypisane do niego wartości z komórek
4 5 6

To by było wszystko lecz SELECT INTO nie działa insert też nie

Ułożyłem sobie te zbiory posortowałem i na 6 różnych sposobów wyniki są wyświetlane w kwerendzie .
Mogę je połączyć ze sobą bez problemu ( teoretycznie ) i problem został rozwiązany lecz pojawia mi się komunikat :

Stan SQL: HY000
Kod błędu: 1000

Podana komenda nie jest wyrażeniem SELECT.
Dozwolone są tylko zapytania.

Po tym jak chciałem uruchomić taki kod :

SELECT "T1"."1"
FROM "T.1"
UNION
SELECT "T2"."1"
FROM "T2"

Wydaje się że wszystko powinno być ok a jednak nie działa :(
Czy można w jakiś sposób uruchomić operator union ? Przypuszczam ze coś z moim Basem jest nie tak gdyż kiedy korzystam z porad i przykładów i w zasadzie rozumiem co i ja to nie mogę uruchomić kwerendy . Są błędy .
OpenOffice.ux.pl.3.4 na Windows XP
ODPOWIEDZ