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
Wzajemne sortowanie dwóch tabel względem wierszy
Wzajemne sortowanie dwóch tabel względem wierszy
OpenOffice.ux.pl.3.4 na Windows XP
Re: Wzajemne sortowanie dwóch tabel względem wierszy
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.
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)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Wzajemne sortowanie dwóch tabel względem wierszy
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 .
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