Fabian Jeda

Specjalista S.L., PGL Lasy Państwowe

Wypowiedzi

  • Fabian Jeda
    Wpis na grupie Ms Access w temacie Kwerenda wybierająca
    26.02.2011, 20:26

    Tabela "A" jest tabelą planowanych czynności (kod czynność, ilość roboczogodzin itd.) tabela "B" jest tabelą informacyjną gdzie każda czynność z tabeli "A" ma kilka parametrów informacyjnych z tabeli "B" (ilość akordowa, nr podpisanej na nią umowy itd.). Stosują zapis A LEFT OUTER JOIN B ON A.id=B.id bez kryteriów otrzymiję wszystkie czynności z tabeli A i ich wszystkie infa z tabeli B jak również puste infa z tabeli B wg układu:
    czynność_a, info_a
    czynność_a, info_b
    czynność_a, info_c
    czynność_b, info_b
    czynność_b, info_c
    czynność_c, puste
    Problem polega na tym, że potrzebuję wszystkie czynności z tabeli "A" a tylko jeden rodzaj info z tabeli "B" lub puste pole info, a trzeba dodać że nie zawsze jest on wpisany (czasami czynności nie mają wogóle info, czasami tylko niektóre rodzaje info ale np. akurat nie te które mnie interesuje). Zakładając kryterium w "WHERE" żeby pokazało konkretne info - "B.c = 'a'" albo puste "OR B.c = Null" kwerenda pokazuje tylko te czynności z tabeli A dla których w tabeli B info = info_a albo nie ma info wogóle. Jeżeli występuje inny rodzaj info np. info_b lub info_c albo obie na raz to nie pokazuje tej czynności z tabeli A. Dlatego nie wiem jakie zastosować kryterium albo może jest to kwestia odpowiedniej klauzuli JOIN. Próbowałem już na wszelkie sposoby ale narazie mam za małą wiedzę i doświadczenie żeby samemu rozwiazać ten problem dlatego będę wdzięczny za pomoc.

  • Fabian Jeda
    Wpis na grupie Ms Access w temacie Kwerenda wybierająca
    26.02.2011, 14:54

    Witam
    Mam mały problem z kwerendą wybierającą. Kwerenda wygląda następująco: połączyłem dwie tabele za pomocą wspólnego pola. Tabela "A" jest tabelą danych natomiast tabela "B" jest tabelą info dla tych danych, gdzie jedna dana z tabeli "A" ma kilka informacji z tabeli "B". W SQL w części "FROM" za pomocą polecenia LEFT OUTER JOIN połączyłem pola A.a = B.b tak aby uzyskać wszystkie dane z tabeli "A" i wszystkie info z tabeli "B" (nawet jeśli w tabeli "B" nie ma info dotyczących danych z tabeli "A" to wyświetla puste pola info). Aby uzyskać tylko interesujące mnie info z tabeli "B" z pola "B.c" w SQL w części "WHERE" wpisałem kryterium ((pole B.c) = 'xx' OR (pole B.c) is Null). Chciałem uzyskać wszystkie pola z tabeli "A" i tylko te pola z tabeli "B" w których B.c = 'xx' albo Null. Niestety polecenie jest błędne ponieważ wybiera tylko te dane z tabeli "A" (zamiast wszystkich danych) i tabeli "B" dla których B.c = 'xx' albo Null. Nie wiem jakie zastosować polecenie aby uzyskać potrzebne dane. Z góry dziękuję za pomoc.

  • Fabian Jeda
    Wpis na grupie Ms Access w temacie fragment pola
    5.02.2011, 14:31

    Już wszystko wiem. W SQL w pozycji SELECT przy dodaniu kolejnego wyświetlanego polanie z funkcją Mid nie czytało znaku średnika. Jak zmieniłem na przecinek to od razu się pokazała kolumna z własciwymi danymi. Wielkie dzięki za radę.
    Pozdrawiam
    Fabian

  • Fabian Jeda
    Wpis na grupie Ms Access w temacie fragment pola
    5.02.2011, 14:13

    Czy to polecenie ma być wpisane w SQL w SELECT jako kolejne wyświetlane pole czy w "Widoku projektu" jako dodatkowe pole z taką samą nazwą jak pierwotna ale z podanymi kryteriami. W pierwszym przypadku wyrzuca mi błąd składniowy a w drugim wyświetla pustą tabelę.

  • Fabian Jeda
    Wpis na grupie Ms Access w temacie fragment pola
    5.02.2011, 12:46

    Witam
    Mam mały problem. Dopiero zacząłem pracę z Accesem i nie wiem jak uzyskać poprzez kwerendę fragmenty pola (w całej kolumnie) jak sie to robi w Excelu poprez formułę "fragmnent.tekstu". Utworzona w ten sposób nowa kolumna (lub może tylko fragmenty wyjściowej kolumny) pozwoli mi połączyć się przez sprzężenie z inną kolumną w innej tabeli o takich samych wartościach. Pola w kolumnie "A" (z pierwszej tabeli) składają się z 25 znaków(cyfry, myślniki i spacje) ale interesuje mnie dziewiąty i dziesiąty znak (są to dwie cyfry) w polu licząc od lewej strony. Pola w kolumnie "B" (z drugiej tabeli) składają się tylko z dwóch cyfr. Nie mam możliwości połączenia tych tabel w inny sposób, nawet przez inne tabele ponieważ nie mają wspólnych danych. Uzyskane sprzężenie pozwoli mi na storzenie potrzebnego raportu. Z góry dziękuje za pomoc.

Dołącz do GoldenLine

Oferty pracy

Sprawdź aktualne oferty pracy

Aplikuj w łatwy sposób

Aplikuj jednym kliknięciem

Wyślij zaproszenie do