W accesie jest coś takiego jak kreator kwerend wyszkujących niepasujące dane.
Czy jest jakiś ekwiwalent czegoś podobnego w open office? A jeżeli nie to jak rozwiązuje się problemy w stylu znalezienia klientów, którzy nie złożyli żadnych zamówień?
[Solved] Niepasujące dane
[Solved] Niepasujące dane
Ostatnio zmieniony śr mar 30, 2022 5:05 pm przez sticzi, łącznie zmieniany 1 raz.
OpenOffice 4 na Windsows 10
Re: Niepasujące dane
Nie wiem jak to jest w acesie, ale AOO i LO również posiadają kwerendy i można tak skonstruować zapytanie aby wynik zwracał "niepasujące" dane.
Można to osiągnąć przy pomocy lewostronego lub prawostronnego złączenia dwóch tabel. Złączenie takie wyświetla wszystkie dane z jednej tabeli i dopasowuje do tych wartości wyniki z drugiej tabeli. Jeżeli jakieś wartości z tabeli pierwszej nie znajdzie w tabeli drugiej wartości przy tum rekordzie otrzymają wartość null.
Wiem, że to troszkę zagmatwane dlatego proponuje pobierz tą bazę: BazaDanych - Befama4.odb, przy jej pomocy spróbuję wyjaśnić ten problem.
W tej bazie utwórz kwerendę SQL, wlej poniższy kod, zapisz i uruchom:
Wynikiem będzie kwerenda wyświetlająca pewne wyniki z dwóch tabel ( "Faktury" oraz "Klienci (Kontrahenci)" ), zastosowane prawostronne złączenie spowoduje, że będą wyświetlone wszystkie rekordy z tabeli "Klienci (Kontrahenci)" a dokładniej pola "NIP" i "Skrócona Nazwa Firmy". Do tych rekordów zostaną dopasowane wyniki z tabeli "Faktury"."NrFaktury".
Dodając na końcu kodu jeszcze warunek:
mówimy że interesują nas tylko rekordy w których pole "NrFaktury" jest puste.
Ten sam efekt uzyskać można stosując zapytanie z podzapytaniem:
Czyli mają być wyświetlone wartości z pól "NIP" i "Skrócona Nazwa Firmy" z tabeli "Klienci (Kontrahenci)", przy czym numery z pola "NIP" NIE MAJĄ BYĆ takie same jak numery zapisane w polu "KlientNip" z tabeli "Faktury" .
Można to osiągnąć przy pomocy lewostronego lub prawostronnego złączenia dwóch tabel. Złączenie takie wyświetla wszystkie dane z jednej tabeli i dopasowuje do tych wartości wyniki z drugiej tabeli. Jeżeli jakieś wartości z tabeli pierwszej nie znajdzie w tabeli drugiej wartości przy tum rekordzie otrzymają wartość null.
Wiem, że to troszkę zagmatwane dlatego proponuje pobierz tą bazę: BazaDanych - Befama4.odb, przy jej pomocy spróbuję wyjaśnić ten problem.
W tej bazie utwórz kwerendę SQL, wlej poniższy kod, zapisz i uruchom:
Kod: Zaznacz cały
SELECT
"Klienci (Kontrahenci)"."NIP",
"Klienci (Kontrahenci)"."Skrócona Nazwa Firmy",
"Faktury"."NrFaktury"
FROM "Faktury" RIGHT JOIN "Klienci (Kontrahenci)"
ON "Faktury"."KlientNip" = "Klienci (Kontrahenci)"."NIP"
Dodając na końcu kodu jeszcze warunek:
Kod: Zaznacz cały
WHERE "Faktury"."NrFaktury" IS NULL
Ten sam efekt uzyskać można stosując zapytanie z podzapytaniem:
Kod: Zaznacz cały
SELECT
"NIP",
"Skrócona Nazwa Firmy"
FROM "Klienci (Kontrahenci)"
WHERE NOT "NIP" IN ( SELECT "KlientNip" FROM "Faktury" )
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Re: Niepasujące dane
Z poziomu SQL sprawa jest dość oczywista i odpowiedź także.
Siedziałem cicho sądząc, że @sticzi zamierza „wykreować” zapytanie posługując się jedynie graficznym interfejsem użytkowym programu.
Mnie osobiście bliższe jest operowanie językiem niż manipulacja, bez względu na to, czy dotyczy to użytkowania, czy nauczania. Jednak są sytuacje, w których sposób patrzenia jest narzucony przez warunki zewnętrzne.
Siedziałem cicho sądząc, że @sticzi zamierza „wykreować” zapytanie posługując się jedynie graficznym interfejsem użytkowym programu.
Mnie osobiście bliższe jest operowanie językiem niż manipulacja, bez względu na to, czy dotyczy to użytkowania, czy nauczania. Jednak są sytuacje, w których sposób patrzenia jest narzucony przez warunki zewnętrzne.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Niepasujące dane
Pytanie brzmiało: "Czy w LO, AOO jest kreator do wyszukiwania niepasujących danych" - a przynajmniej ja je tak zrozumiałem. Trochę zawile odpowiedziałem że takiego kreatora tutaj nie ma, ale przy odrobinie wiedzy na temat języka SQL idzie samemu taką kwerendę stworzyć. Nowicjuszowi w Base faktycznie, przy pomocy interfejsu graficznego może być na początku nieco łatwiej ogarnąć taki temat. Przy jego użyciu, takie zapytanie (w skrócie) tworzy się tak:
2. Wybierz jakich tabel lub/i kwerend będą pobierane dane.
3. Wybierz, które pola mają być wykorzystane (wyświetlane w wyniku).
4. W kryterium określasz jakie warunki mają być spełnione aby wyświetlić tylko interesujące cię rekordy.
5. Tabela Faktury ma w sobie jedno pole powiązane z tabelą Klienci (Kotrachenci), jest nim pole KlientNip i odpowiada ono polu-kuczu NIP. Należy (jeśli niema) utworzyć złączenie tych tabel, w tym celu chwyć pole KlientNip (kliknij na dane pole, trzymając wciśnięty klawisz myszki) i umieść je na polu NIP. Powinna pojawić się linia łącząca te dwa pola (na obrazku zaznaczyłem ją na żółto).
6. Kliknij dwukrotnie na tą linię, otworzy się okno Właściwości złączenia, tam możesz ustawić jaki typ złączenia ma być zastosowany.
1. Wybierz Utwórz projekt kwerendy;2. Wybierz jakich tabel lub/i kwerend będą pobierane dane.
3. Wybierz, które pola mają być wykorzystane (wyświetlane w wyniku).
4. W kryterium określasz jakie warunki mają być spełnione aby wyświetlić tylko interesujące cię rekordy.
5. Tabela Faktury ma w sobie jedno pole powiązane z tabelą Klienci (Kotrachenci), jest nim pole KlientNip i odpowiada ono polu-kuczu NIP. Należy (jeśli niema) utworzyć złączenie tych tabel, w tym celu chwyć pole KlientNip (kliknij na dane pole, trzymając wciśnięty klawisz myszki) i umieść je na polu NIP. Powinna pojawić się linia łącząca te dwa pola (na obrazku zaznaczyłem ją na żółto).
6. Kliknij dwukrotnie na tą linię, otworzy się okno Właściwości złączenia, tam możesz ustawić jaki typ złączenia ma być zastosowany.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP