🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.bazy-danych.msaccess
4 messages
4 total messages Started by leku Sat, 16 May 2020 22:05
Kwerenda - dane z 3 tabel
#137774
Author: leku
Date: Sat, 16 May 2020 22:05
19 lines
1548 bytes
Access 2010
TabA z polem nr_zlec
TabB z polem nr_zlec i koszt1
TabC z polem nr_zlec i koszt2

Jak poprawnie zbudować kwerendę wykorzystującą pola:
TabA.nr_zlec ; TabB.koszt1 ; TabC.koszt2
aby pokazywała wszystkie koszty z TabB i TabC
przypisane do zleceń z TabA ?

pozdrawiam
leku




-- 
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Kwerenda - dane z 3 tabel
#137776
Author: transroad193
Date: Sun, 17 May 2020 21:39
20 lines
2242 bytes
W dniu niedziela, 17 maja 2020 00:06:03 UTC+2 użytkownik leku napisał:
> Access 2010
> TabA z polem nr_zlec
> TabB z polem nr_zlec i koszt1
> TabC z polem nr_zlec i koszt2
> 
> Jak poprawnie zbudować kwerendę wykorzystującą pola:
> TabA.nr_zlec ; TabB.koszt1 ; TabC.koszt2
> aby pokazywała wszystkie koszty z TabB i TabC
> przypisane do zleceń z TabA ?

jeśli chcesz tylko koszty przypisane do danego zlecenia to musisz zrobić select'a na 3 tabelach połączonych:

select TabA.nr_zlec, TabB.koszt1, TabC.koszt2 
from TabA inner join TabB on TabA.nr_zlec = TabB.nr_zlec 
inner join TabC on TabA.nr_zlec = TabC.nr_zlec

Proponowałbym jednak w tabeli TabA założyć kolumnę z kluczem głównym (np. autonuerowaną) i łączyć po nich (oczywiście wówczas w TabB i TabC umieszczasz klucz obcy do klucza głównego z TabA)

Wardzyn
Re: Kwerenda - dane z 3 tabel
#137777
Author: leku
Date: Mon, 18 May 2020 05:21
32 lines
2392 bytes
jeśli chcesz tylko koszty przypisane do danego zlecenia to musisz zrobić 
select'a na 3 tabelach połączonych:

select TabA.nr_zlec, TabB.koszt1, TabC.koszt2
from TabA inner join TabB on TabA.nr_zlec = TabB.nr_zlec
inner join TabC on TabA.nr_zlec = TabC.nr_zlec

Proponowałbym jednak w tabeli TabA założyć kolumnę z kluczem głównym (np. 
autonuerowaną) i łączyć po nich (oczywiście wówczas w TabB i TabC 
umieszczasz klucz obcy do klucza głównego z TabA)

Wardzyn

-------------------------------------------

Inner join nie załatwia sprawy bo koszty w obu polach nie zawsze występują.
Faktycznym źródłem danych są kwerendy gdzie koszty są wyliczane.
Dodatkowym utrudnieniem jest brak wartości w polach Koszt1 i Koszt2 (Null)
Nie działa też Left Join i Right Join.
W Excelu załatwia problem funkcja wyszukaj pionowo ale muszę to zrobić w 
istniejącej
bazie Access :)

pozdrawiam
leku



-- 
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Kwerenda - dane z 3 tabel
#137778
Author: leku
Date: Mon, 18 May 2020 16:02
39 lines
2263 bytes
Access 2010
TabA z polem nr_zlec
TabB z polem nr_zlec i koszt1
TabC z polem nr_zlec i koszt2

Jak poprawnie zbudować kwerendę wykorzystującą pola:
TabA.nr_zlec ; TabB.koszt1 ; TabC.koszt2
aby pokazywała wszystkie koszty z TabB i TabC
przypisane do zleceń z TabA ?

pozdrawiam
leku

-----------------------------------------------------

Zrobiłem to na dwie kwerendy.
Kw1 => TabA.nr_zlec ; Tab_B.koszt1 (sprzęż - wszystkie nr_zlec z Tab_A i 
równe nr_zlec z Tab_B)
Kw2 => Kw1.nr_zlec ; Tab_B.koszt1 ; TabC.koszt2 (sprzęż - wszystkie nr_zlec 
z Kw1 i równe nr_zlec z Tab_C)

Do Kw2 dodałem pole wyliczane
Znacznik:IIf([koszt1]>0 Or [koszt2]>0;1;0)
co wstawia 1 przy zleceniu gdzie jest koszt1 >0 lub koszt2>0

Dalej już tylko Kryterium filtrowania w polu Znacznik po 1
i mam to co chciałem :)

Może mało elegancko ale działa :)

pozdrawiam
leku




-- 
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads