ďťż
 
Skonstruowanie zapytania SQL do bazy Access - chyba proste ďťż
 
Skonstruowanie zapytania SQL do bazy Access - chyba proste
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

Skonstruowanie zapytania SQL do bazy Access - chyba proste



Damian majewski - 23-01-2007 00:00
Skonstruowanie zapytania SQL do bazy Access - chyba proste
  Witam serdecznie,

mam problem gdyż nie wiem jak skonstruować zapytanie do bazy.
Mam dwie tabele - Towary i Magazyny
kolumny w Tabeli towary to:
id, Nazwa, id_mag1, id_mag2

kolumny w tabeli Magazyny to:
id, Nazwa

Chodzi o to żeby do towaru przypisać dwa magazyny poprzez wpisanie id
magazynu w id_mag1 i id_mag2.

czyli dane w tabeli wyglądają tak:
1, Chleb, 1, 2
2, Masło, 1, 4
itp.

a w wyniku zapytania muszę otrzymać w dwóch ostatnich kolumnach nazwy tych
magazynów - niby proste a nie mogę sobie poradzić.

Zatem będę wdzięczny za wszelkie wskazówki.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/





jacek - 23-01-2007 00:00

  Polecam kreator kwerend.




Piotr Kulinski - 23-01-2007 00:01

  Damian majewski naskrobał(a) co następuje:

> Witam serdecznie,
>
> mam problem gdyż nie wiem jak skonstruować zapytanie do bazy.
> Mam dwie tabele - Towary i Magazyny
> kolumny w Tabeli towary to:
> id, Nazwa, id_mag1, id_mag2
>
> kolumny w tabeli Magazyny to:
> id, Nazwa
>
> Chodzi o to żeby do towaru przypisać dwa magazyny poprzez wpisanie id
> magazynu w id_mag1 i id_mag2.
>
> czyli dane w tabeli wyglądają tak:
> 1, Chleb, 1, 2
> 2, Masło, 1, 4
> itp.
>
> a w wyniku zapytania muszę otrzymać w dwóch ostatnich kolumnach nazwy
> tych magazynów - niby proste a nie mogę sobie poradzić.
>
> Zatem będę wdzięczny za wszelkie wskazówki.
>
select *,M1.Nazwa,M2.nazwa
from towary T
left join magazyny M1 on M1.id=T.id_mag1
left join magazyny M2 on M2.id=T.id_mag2
order by T.nazwa;

np. tak
ale moim zdaniem jest to zła konstrukcja bazy

--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
piotr "Nie ma tego złego co by na dobre nie wyszło"




jacek - 23-01-2007 00:01

  Dnia Mon, 22 Jan 2007 12:53:02 +0100, Piotr Kulinski napisał(a):

> Damian majewski naskrobał(a) co następuje:
>
>> Witam serdecznie,
>>
>> mam problem gdyż nie wiem jak skonstruować zapytanie do bazy.
>> Mam dwie tabele - Towary i Magazyny
>> kolumny w Tabeli towary to:
>> id, Nazwa, id_mag1, id_mag2
>>
>> kolumny w tabeli Magazyny to:
>> id, Nazwa
>>
>> Chodzi o to żeby do towaru przypisać dwa magazyny poprzez wpisanie id
>> magazynu w id_mag1 i id_mag2.
>>
>> czyli dane w tabeli wyglądają tak:
>> 1, Chleb, 1, 2
>> 2, Masło, 1, 4
>> itp.
>>
>> a w wyniku zapytania muszę otrzymać w dwóch ostatnich kolumnach nazwy
>> tych magazynów - niby proste a nie mogę sobie poradzić.
>>
>> Zatem będę wdzięczny za wszelkie wskazówki.
>>
> select *,M1.Nazwa,M2.nazwa
> from towary T
> left join magazyny M1 on M1.id=T.id_mag1
> left join magazyny M2 on M2.id=T.id_mag2
> order by T.nazwa;
>
> np. tak
> ale moim zdaniem jest to zła konstrukcja bazy

Bo powinna np. wygladac tak:

tblTowary - id_Towaru, nazwa
tblMagazyn - id_Magazynu, nazwa,
tblStan - id, id_Magazynu, id_Towaru, stan

Wtedy widac w jakim magazynie ile jest jakiego towaru.





Damian majewski - 23-01-2007 00:01

  jacek <adres@moj.pl> napisał(a):

> Dnia Mon, 22 Jan 2007 12:53:02 +0100, Piotr Kulinski napisał(a):
>
> > Damian majewski naskrobał(a) co następuje:
> >
> >> Witam serdecznie,
> >>
> >> mam problem gdyż nie wiem jak skonstruować zapytanie do bazy.
> >> Mam dwie tabele - Towary i Magazyny
> >> kolumny w Tabeli towary to:
> >> id, Nazwa, id_mag1, id_mag2
> >>
> >> kolumny w tabeli Magazyny to:
> >> id, Nazwa
> >>
> >> Chodzi o to żeby do towaru przypisać dwa magazyny poprzez wpisanie id
> >> magazynu w id_mag1 i id_mag2.
> >>
> >> czyli dane w tabeli wyglądają tak:
> >> 1, Chleb, 1, 2
> >> 2, Masło, 1, 4
> >> itp.
> >>
> >> a w wyniku zapytania muszę otrzymać w dwóch ostatnich kolumnach nazwy
> >> tych magazynów - niby proste a nie mogę sobie poradzić.
> >>
> >> Zatem będę wdzięczny za wszelkie wskazówki.
> >>
> > select *,M1.Nazwa,M2.nazwa
> > from towary T
> > left join magazyny M1 on M1.id=T.id_mag1
> > left join magazyny M2 on M2.id=T.id_mag2
> > order by T.nazwa;
> >
> > np. tak
> > ale moim zdaniem jest to zła konstrukcja bazy
>
> Bo powinna np. wygladac tak:
>
> tblTowary - id_Towaru, nazwa
> tblMagazyn - id_Magazynu, nazwa,
> tblStan - id, id_Magazynu, id_Towaru, stan
>

Oczywiście, że macie racje ale nie ja tę bazę zaprojektowałem. Chodzi o
dopisanie tylko dwóch magazynów do towaru coś na zasadzie magazyn wejściowy
i magazyn wyjściowy. Też rozwiązałbym tę konstrukcję inaczej ale narazie
muszę wyciągnąć jednym zapytaniem towar.nazwa, magazyn1.nazwa,
magazyn2.nazwa.

Ciekawostka jest taka że w bazie Comarchu w CDN.Optima też jest taki
problem. Poniekąd ta baza jest przez kogoś stworzona na bazie normalizacji z
temtej

> > select *,M1.Nazwa,M2.nazwa
> > from towary T
> > left join magazyny M1 on M1.id=T.id_mag1
> > left join magazyny M2 on M2.id=T.id_mag2
> > order by T.nazwa;

powyższe zapytanie nie działa - zresztą nie bardzo wiem dlaczego jest w nim
dwa razy left join?? Zatem dalej prosze o pomoc za którą z góry dziękuję.

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Piotr Kulinski - 23-01-2007 00:01

  Damian majewski naskrobał(a) co następuje:

[...]
>> > select *,M1.Nazwa,M2.nazwa
>> > from towary T
>> > left join magazyny M1 on M1.id=T.id_mag1
>> > left join magazyny M2 on M2.id=T.id_mag2
>> > order by T.nazwa;
>
> powyższe zapytanie nie działa - zresztą nie bardzo wiem dlaczego jest w
> nim dwa razy left join?? Zatem dalej prosze o pomoc za którą z góry
> dziękuję.
>

dlatego że raz łączysz po polu id_mag1, a drugi raz po polu id_mag2
sprawdź dokładnie czy przepisałeś tak jak podałem?

--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
piotr "Nic nie stoi na przeszkodzie, co by przeszkody sobie nie
stworzyć :)"




Damian majewski - 23-01-2007 00:01

  Piotr Kulinski <piotr_kulinski@wpw.pl> napisał(a):

> Damian majewski naskrobał(a) co następuje:
>
> [...]
> >> > select *,M1.Nazwa,M2.nazwa
> >> > from towary T
> >> > left join magazyny M1 on M1.id=T.id_mag1
> >> > left join magazyny M2 on M2.id=T.id_mag2
> >> > order by T.nazwa;
> >
> > powyższe zapytanie nie działa - zresztą nie bardzo wiem dlaczego jest w
> > nim dwa razy left join?? Zatem dalej prosze o pomoc za którą z góry
> > dziękuję.
> >
>
> dlatego że raz łączysz po polu id_mag1, a drugi raz po polu id_mag2
> sprawdź dokładnie czy przepisałeś tak jak podałem?
>
Wyskakuje mi komunikat 'Błąd składniowy (brak operatora) w wyrażeniu
kwerendy 'M1.id = T.id_mag1 left join magazyny M2 on M2.id = T.id_mag2'

Wklejam to co wkleiłem do kwerendy:
select *,M1.Nazwa, M2.nazwa
from towary T
left join magazyny M1 on M1.id=T.id_mag1
left join magazyny M2 on M2.id=T.id_mag2
order by T.nazwa;

?????????????????????????????????????????

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/




Piotr Kulinski - 23-01-2007 00:01

  Damian majewski naskrobał(a) co następuje:

> Piotr Kulinski <piotr_kulinski@wpw.pl> napisał(a):
>
>> Damian majewski naskrobał(a) co następuje:
>>
>> [...]
>> >> > select *,M1.Nazwa,M2.nazwa
>> >> > from towary T
>> >> > left join magazyny M1 on M1.id=T.id_mag1
>> >> > left join magazyny M2 on M2.id=T.id_mag2
>> >> > order by T.nazwa;
>> >
>> > powyższe zapytanie nie działa - zresztą nie bardzo wiem dlaczego jest
>> > w nim dwa razy left join?? Zatem dalej prosze o pomoc za którą z góry
>> > dziękuję.
>> >
>>
>> dlatego że raz łączysz po polu id_mag1, a drugi raz po polu id_mag2
>> sprawdź dokładnie czy przepisałeś tak jak podałem?
>>
> Wyskakuje mi komunikat 'Błąd składniowy (brak operatora) w wyrażeniu
> kwerendy 'M1.id = T.id_mag1 left join magazyny M2 on M2.id = T.id_mag2'
>
> Wklejam to co wkleiłem do kwerendy:
> select *,M1.Nazwa, M2.nazwa
> from towary T
> left join magazyny M1 on M1.id=T.id_mag1
> left join magazyny M2 on M2.id=T.id_mag2
> order by T.nazwa;
>
> ?????????????????????????????????????????
>

może wprowadziłem w błąd, konstrukcja zapytania pracuje pod MySQL w access
głowy sobie nie dam uciąć :) Próbowałeś zmieniać akronimy np M1 na A M2 na
B ?, może przyjmuje w uszach 'A'.'id_mag1' ?
Sprawdzę później na Access-ie

--
pozdrawiam, GG i SkyPe w X-nagłówku posta, e-mail: zmień "wpw" na "wp"
piotr "Nie ma tego złego co by na dobre nie wyszło"
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= [newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?= ms sql server - =?ISO-8859-2?Q?domy=B6lny_format_kolumn_ty?==?ISO-8859-2?Q?pu_datetime?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com