zapytanie "wielokrotne złożone"

Użytkowanie programu bazodanowego
pin54
Posty: 10
Rejestracja: śr maja 11, 2011 11:59 pm

zapytanie "wielokrotne złożone"

Post autor: pin54 »

Dawno się nie bawiłem sql więc może trochę zardzewiałem, ale może jednak po prostu base utrudnia.

Chciałbym stworzyć powiedzmy takie zapytanie

Kod: Zaznacz cały

SELECT (SELECT SUM(kol1) FROM tabela1 WHERE kol2 = '8') - (SELECT SUM(kol1) FROM tabel1 WHERE kol2 = '6') 
no i się nie da się chyba ?

Jakieś pomyśły ? (poza rozbiciem na dwa oddzielne zapytania)

EDIT
Sprawdziłem na bazie MySQL i działa bez problemu, ale na odb nie chce. Z góry dzięki za jakieś pomysły jak to obejść.

EDIT2
Nie no w tym się nie da pracować... Czy jeżeli przeniosę bazę do MySQL to będę miał pełną funkcjonalność MySQL w Base, czy nie ? Czy można wyeksportować bazę do MySQL z automatu, albo chociaż wygenerować jakiś plik z kodem sql ?
OpenOffice 3.2 na Ubuntu
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: zapytanie "wielokrotne złożone"

Post autor: Jan_J »

Standardem jest

Kod: Zaznacz cały

SELECT lista_pól FROM struktura_relacyjna ...;
SELECT bez klauzuli FROM jest wygodnym, bo wygodnym, ale rozszerzeniem standardu, spotykanym w wielu bazach, m.in. we wspomnianym MySQL.
Btw., składnia MySQL od standardów jest stosunkowo daleko.

Brak tego rozszerzenia da się obejść następująco:
  • założyć najprostszą tabelę z jedną kolumną i jednym rekordem o dowolnej treści

    Kod: Zaznacz cały

    CREATE TABLE Dual (Dummy INTEGER);
    INSERT INTO Dual VALUES (NULL);
  • wszędzie, gdzie nie chcemy kierować SELECT do tabeli, dopisać frazę FROM Dual
Jest to rozwiązanie stosowane m.in w Oracle i w DB2 -- z tym, że tam odpowiednia tabela jest domyślnie obecna w bazie (w Oracle nosi ona nazwę Dual).

PS. A że się nie da pracować w HSQL 1.8, to wierzę: popatrz choćby na funkcje obsługi dat.

W sprawie eksportu:
* po rozpakowaniu zip-em pliku odb w podkatalogu database masz plik script z SQL-wym szkieletem bazy.
* o ile pamiętam dobrze, HSQLDB obsługuje kilka różnych formatów zapisu bazy. Plik database z zawartością jest binarny (nie znam szczegółów).
Przeczytaj http://user.services.openoffice.org/en/ ... =13&t=5009, może się przyda.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
pin54
Posty: 10
Rejestracja: śr maja 11, 2011 11:59 pm

Re: zapytanie "wielokrotne złożone"

Post autor: pin54 »

Dzięki za wyczerpującą odpowiedź. Jak tylko znajdę chwilę to przetestuję i dam zanć czy problem rozwiązany.
OpenOffice 3.2 na Ubuntu
ODPOWIEDZ