Problem z prostym zapytaniem SQL (IB + Delphi)
Budzik - 08-04-2006 00:05
Problem z prostym zapytaniem SQL (IB + Delphi)
Witam Jakis czas temu napisałem prosty program imitujacy wypozyczalnie plyt divx. Nie uzwgledniłem wtedy jednak sytuacji w której na 1 plycie sa jakies 2 lub wiecej filmików. I mam teraz mały problem z dostosowaniem.
Są 2 tabele: Filmy: id_film (klucz głowny) numer tytul
wypozyczenia: id_wypozyczenia (klucz głowny) id_film (klucz obcy) data_wyp data_odd
Problem jest w sprawdzaniu czy dana plyta jest juz wypozyczona (wczesniej nie było problemu poniewaz pole numer było unikalne, teraz juz tak nie jest). Dotychczas zapytanie wygladało nastepujaco: SELECT COUNT(*) AS a FROM wypozyczenia WHERE id_film=:ID_FILM AND data_odd IS NULL (:id_film ma wartosc odczytana dla wybranego w tabeli w danym momencie filmu) Jak zmodyfikowac to zapytanie?
-- Pozdrawia... Budzik ; #GG: 565516 ; www.rowery.rejtravel.pl b_ud_zi_k_6_1 na poczta kropka onet kropka pl (adres antyspamowy, usuń także "_") "Kiedy dyplomata mówi "tak", oznacza to "może"; kiedy mówi "może", ma na myśli "nie"; kiedy mówi "nie", nie jest dyplomatą." Henry Louis Mencken
Budzik - 10-04-2006 00:25
Osobnik posiadający mail'a budzik61@poczta.o.n.e.t.pl.nie.spam.oj napisał(a) w poprzednim odcinku co następuje:
> Jak zmodyfikowac to zapytanie?
problem jest taki trudny (pewnie nie... :))) czy pytanie tak zagmatwałem ze nie wiadomo o co chodzi?
-- Pozdrawia... Budzik ; #GG: 565516 ; www.rowery.rejtravel.pl b_ud_zi_k_6_1 na poczta kropka onet kropka pl (adres antyspamowy, usuń także "_") "Lubię pracę. Praca mnie fascynuje. Potrafię godzinami siedzieć i przyglądać się jej." Jerome K. Jerome
=?ISO-8859-2?Q?Micha=B3_Zaborowski?= - 10-04-2006 00:25
Dnia 2006-04-09 12:17, Użytkownik Budzik napisał :
> Osobnik posiadający mail'a budzik61@poczta.o.n.e.t.pl.nie.spam.oj napisał(a) w poprzednim odcinku co następuje: > > > >>Jak zmodyfikowac to zapytanie? > > problem jest taki trudny (pewnie nie... :))) czy pytanie tak zagmatwałem ze > nie wiadomo o co chodzi? > Nie Ta Grupa. Jest grupa do Delphi. Z takim opisem mało kto przeczyta Twojego posta. Co do rozwiązania - może zamiast filmow uwzględniaj płyty? Nie, żeby zaraz to takie odkrywcze było :) Dodanie tabeli z filmami na płytach rozwiąże jeszcze jeden problem - bo jeden film może być na kilku płytach (w sensie kilku kopii).
-- Pozdrawiam, Michał Zaborowski (TeXXaS)
Budzik - 02-05-2006 00:38
Osobnik posiadający mail'a michal.zaborowski@_nospam_wp.pl napisał(a) w poprzednim odcinku co następuje:
>>>Jak zmodyfikowac to zapytanie? >> >> problem jest taki trudny (pewnie nie... :))) czy pytanie tak >> zagmatwałem ze nie wiadomo o co chodzi? >> > Nie Ta Grupa. Jest grupa do Delphi. Z takim opisem mało kto > przeczyta > Twojego posta.
:) tak myslałem ze namieszałem, aczkolwiek wydawało mi sie ze to kwestai zapytania SQL a nie kwestia delphi, choc oczywiscie sprawa dotyczny programu napisanego w delphi.
> Co do rozwiązania - może zamiast filmow uwzględniaj płyty? Nie, > żeby > zaraz to takie odkrywcze było :) Dodanie tabeli z filmami na płytach > rozwiąże jeszcze jeden problem - bo jeden film może być na kilku > płytach (w sensie kilku kopii). > racja, aczkolwiek takie rozwiazanie wykluczyłem - to znaczy jest mozliwe ale wtedy kazda kopia dostaje swój numer i film_id. Nie chciałbym dodawac kolejnej tablicy bo wtedy trzeba bedzie zmieniac kilka miejsc w programie a mi zalezy na jak najprostszej zmianie. Reasumujac - postaram sie uproscic pytanie do zagadnienia SQL:
Powtarzam tabele bo post był juz dosc dawno (przeoczyłem odp.)
Filmy: id_film (klucz głowny) numer_CD tytul
wypozyczenia: id_wypozyczenia (klucz głowny) id_film (klucz obcy) data_wypozyczenia data_oddania
W tabeli filmy id_film jest unikatowe, ale numer _CD juz nie no i jak sie mozna domyslic dla jednego numer_CD moze byc kilka id_film czyli po ludzku na jednej plycie moze byc kilka filmów. I teraz znajac id_film jak sprawdzic czy dana plyta nie została wypozyczona, czyli czy nie ma takiego wpisu w tabeli wypozyczenia który bedzie miał id_film wskazujacy zgodnie z tabela filmy ten sam numer_CD który nasz znany id_film i bedize mial date_oddania=null?
A moze do tabeli wypozyczenia dodac pole numer_CD i wtedy bedzie to latwiejsze? Jak wtedy powinno wygladac takie zapytanie?
P.S. Mam nadzieje ze teraz wytłumaczyłem troche logiczniej :))) Pozdrawiam długołikendowo.
-- Pozdrawia... Budzik ; #GG: 565516 ; www.rowery.rejtravel.pl b_ud_zi_k_6_1 na poczta kropka onet kropka pl (adres antyspamowy, usuń także "_") "Kpić z filozofii to filozofować naprawdę." Blaise Pascal
Adam D - 02-05-2006 00:38
Budzik <budzik61@poczta.o.n.e.t.pl.nie.spam.oj> napisał(a):
> Witam > Jakis czas temu napisałem prosty program imitujacy wypozyczalnie plyt divx.
Wypozyczalnia plyt divx???? No ładne piractwo :)
adam
-- Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Budzik - 02-05-2006 00:39
Osobnik posiadający mail'a axeld@WYTNIJ.gazeta.pl napisał(a) w poprzednim odcinku co następuje:
>> Jakis czas temu napisałem prosty program imitujacy wypozyczalnie plyt > divx. > > Wypozyczalnia plyt divx???? > No ładne piractwo :)
abstrahujac od tego ze program był napisany w celach naukowo-testowych, oraz tego ze słuzy w tej chwili do katalogowania róznej zawartosci w domowym zaciszu (takze jakies małe dziwne filmiki typu np. chubchubsy - ktos widział :))) to jak twoja odpowiedz ma sie do zadanego pytania/problemu? A np. plyty muzyczne rodzinie czy znajomym to chyba mozna pozyczac? Bo mi juz zbyt duzo CD zgineło zeby robic to bez jakiegos zapisywania - sklerotyk jestem :)
-- Pozdrawia... Budzik ; #GG: 565516 ; www.rowery.rejtravel.pl b_ud_zi_k_6_1 na poczta kropka onet kropka pl (adres antyspamowy, usuń także "_") Zbyt kocham moje szaleństwa, by nie przerażała mnie myśl, że ktoś wbrew woli próbował będzie mnie leczyć
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
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?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
[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?=
zanotowane.pldoc.pisz.plpdf.pisz.plmisida.pev.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 |
|