kwerenda z union all

0

Piszę program w Delphi Interbase, ale nie wiele jeszcze umiem.Program to zapisywanie dokumentów środka trwalego, jego modernizacji, korekty i likwidacji i takie są też tabelki. Mam taki problem: jak napisać kwerendę union all dla kilku tabel w kórych wspólny jest tylko klucz obcy i jedno pole, ale żeby można było dołączyć pozostałe pola z tabel. Wiem że takie połączenie jest możliwe za pomocą konstrukcji np. select left join on, i oczywiscie wtedy łączy się te tabele wg kluczy ale ja bym chciała żeby wszystkie typy dokumentów z każdej tabeli wyświetlały się w jednej wspólnej kolumnie takiej jaka powstaje po zastosowaniu union all. Tym polem wspólnym jest typ_dokumentu . Chodzi o to żeby kwerenda pokazywala wszystkie dokumenty z każdej tabeli we wspólnej tabeli według pola typ_dokumentu. Czy jest to w ogóle możliwe?

0
  1. wszystkie dokumenty powinny być w jednej (a dokładniej w dwóch tabelach - nagłówki i pozycje) tabeli a nie każdy typ dokumentu w osobnej tabeli.
  2. union łączy kilka tabel ALE tylko jeśli masz w zapytaniach tyle samo kolumn i poszczególne kolumny mają taki sam typ

Ogólnie to masz zwalone zapisywanie dokumentów bo taki sztuczny podział to więcej problemów niż pożytku

0

Ale jak te dokumenty mogą być w jednej zbiorczej tabeli jak one się znacznie miedzy sobą różnią polami. Taka duża tabela miałaby wiele pól zupełnie pustych. Poza tym głównym dokumentem jest dokument zapisu środka_trwałego a te pozostałe są dodatkowymi dokumentami. Myślałam że tabele muszą być atomowe. Czy nie ma jakiegoś sposobu żeby jednak wyświetlić te dokumenty w jednej zbiorczej tabeli?

0

no to zobacz, że sama sobie zaprzeczasz - piszesz

Ale jak te dokumenty mogą być w jednej zbiorczej tabeli jak one się znacznie miedzy sobą różnią polami. Taka duża tabela miałaby wiele pól
a następnie
Czy nie ma jakiegoś sposobu żeby jednak wyświetlić te dokumenty w jednej zbiorczej tabeli

A tak btw to wypisz sobie w słupkach pola poszczególnych dokumentów, zaznacz te same i porównaj ile Ci wyszło takich samych a ile różnych.

0

ok, policzyłam te wspólne pola. W każdej z tych tabel jest ich 4. Tabela srodki_trwale ma ogółem 19 pól, korekta -8, likwidacja - 7,modernizacja -6. Gdyby te dokumenty umieścić w jednej tabeli to musiałaby mieć 28 pól, z których wiele pozostałoby pustych. Czy to jest najlepsze rozwiązanie?

0

no to teraz sama pomyśl co by miało być (w sensie które pola) w tej wspólnej liście wszystkich dokumentów.

btw możesz dać strukturę tych tabel?

jak dasz strukturę i ;istę pól to postaramy się coś wymyśleć :)

0

Oki moge napisac strukture tabel
tabela 1 srodki_trwale:
id (pk)
data_dokumentu_nabycia
data_nabycia
data_uzytkowania
nr_dokumentu_nabycia
nr_inwentarzowy
nazwa
charakterystyka
dostawca
miejsce_uzutkowania
typ
nr_fabryczny
wartosc_poczatkowa
rodzaj_amortyzacji
stawka
miesieczny_odpis
zaktualizowana_wartosc
umorzenie
symbol_klasyfikacji
wspolczynnik_przeliczeniowy
amortyzowany
miesiac_amortyzacji
nr_dokumentu
roczny_odpis
typ_dokumentu

tabela 2 modernizacja:
id_modernizacji (pk)
nr_dokumentu_modernizacji
wartosc_modernizacji
id (fk)
typ_dokumentu
tabela 3 korekta:
id_korekty(pk)
id(fk)
korekta_wartosci
korekta_umorzenia
korekta_amortyzacji
typ_dokumentu
nr_dokumentu_korekty
data_dokumentu_korekty

tabela 4 likwidacja
id_likwidacji(pk)
id(fk)
nr_dokumentu_likwidacji
data_dokumentu_likwidacji
podstawa
data_likwidacji
typ_dokumentu

tabela 5 przeniesienie
id_przeniesienia(pk)
id(fk)
nr_dokumentu_przeniesienia
podstawa
nowe_miejsce_uzytkowania
typ_dokumentu

i to wszystko:))
No załóżmy że można by zrobić tak jak mówisz tabele nagłówki, tabele mieszcząca te 4 wspólne pola dla kazdego rodzaju dokumentu ale co z reszta? Gdzie ja mam upchnąć?:(

0

Czy to znaczy że całą resztę trzeba zapakować znów do 5 tabelek tylko troszkę krótszych?

1 użytkowników online, w tym zalogowanych: 0, gości: 1