ďťż
 
problem z pytaniem sql ďťż
 
problem z pytaniem sql
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

problem z pytaniem sql



no-name - 25-04-2006 00:02
problem z pytaniem sql
  Witam.
Mam problem s pytaniem sql i przyznam, ze utknalem.
Sory za brak zawijania, ale inaczej to sie rozjezdza :(.
Mam trzy bazy:

mysql> describe klient;
+------------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------------+------+-----+---------+----------------+
| lp | int(11) | | PRI | NULL | auto_increment |
| nazwa | mediumtext | YES | | NULL | |
| adres | mediumtext | YES | | NULL | |
| telefon | varchar(100) | YES | | NULL | |
| mobile | varchar(100) | YES | | NULL | |
| email | varchar(100) | YES | | NULL | |
| aktywne | enum('tak','nie') | YES | | tak | |
| uwagi | longtext | YES | | NULL | |
| last_changes | int(11) | YES | | NULL | |
| lokalizacja | int(11) | YES | | NULL | |
| termin_platnosci | varchar(255) | | | | |
| typ_platnosci | enum('przelew','gotowka') | | | przelew | |
| kwota | varchar(255) | | | | |
| dodano | varchar(255) | | | | |
+------------------+---------------------------+------+-----+---------+----------------+

mysql> describe platnosci;
+------------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------------+------+-----+---------+----------------+
| lp | int(11) | | PRI | NULL | auto_increment |
| netto | float | | | 0 | |
| za_okres | varchar(255) | | | | |
| termin_platnosci | varchar(255) | | | | |
| typ | enum('przelew','gotowka') | | | przelew | |
| kwota | varchar(100) | | | 0 | |
| faktura | enum('tak','nie') | | | nie | |
| nr_faktury | varchar(255) | | | | |
| klient_id | int(11) | | | 0 | |
| wplacono | enum('tak','nie') | | | nie | |
| data_wplaty | varchar(255) | | | | |
+------------------+---------------------------+------+-----+---------+----------------+

mysql> describe klient;
+------------------+---------------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------------+---------------------------+------+-----+---------+----------------+
| lp | int(11) | | PRI | NULL | auto_increment |
| nazwa | mediumtext | YES | | NULL | |
| adres | mediumtext | YES | | NULL | |
| telefon | varchar(100) | YES | | NULL | |
| mobile | varchar(100) | YES | | NULL | |
| email | varchar(100) | YES | | NULL | |
| aktywne | enum('tak','nie') | YES | | tak | |
| uwagi | longtext | YES | | NULL | |
| last_changes | int(11) | YES | | NULL | |
| lokalizacja | int(11) | YES | | NULL | |
| termin_platnosci | varchar(255) | | | | |
| typ_platnosci | enum('przelew','gotowka') | | | przelew | |
| kwota | varchar(255) | | | | |
| dodano | varchar(255) | | | | |
+------------------+---------------------------+------+-----+---------+----------------+
I pytanie:
select k.lp, k.nazwa, k.aktywne, l.nazwa, p.wplacono from klient k, platnosci p left join lokalizacje l on (k.lokalizacja=l.lp) where p.za_okres='2006.04' and p.klient_id=k.lp order by k.nazwa asc

Moze byc ono modyfikowane tak, aby mozna bylo sortowac po dowolnej kolumnie.
Problem jest taki, że jezeli jest dodany klient, który nie posiada swojej wplaty
za dany miesiąc (pole za_okres w tabeli platnosci) nie jest on wybierany. Jak zmodyfikowac
to pytanie, zeby byl on na liscie wynikow? Z gory dzieki za kazda podpowiedz, bo juz nie mam pomyslu,
a dzien wybitnie nie moj :(.
--
Miq





Rafalsxat - 25-04-2006 00:02

 
----- Original Message -----
From: "no-name" <michal@linuxstuff.pl>
To: <pl-comp-bazy-danych@newsgate.pl>
Sent: Monday, April 24, 2006 1:36 PM
Subject: problem z pytaniem sql
> select k.lp, k.nazwa, k.aktywne, l.nazwa, p.wplacono from klient k,
> platnosci p left join lokalizacje l on (k.lokalizacja=l.lp) where
> p.za_okres='2006.04' and p.klient_id=k.lp order by k.nazwa asc
> Problem jest taki, że jezeli jest dodany klient, który nie posiada swojej
> wplaty
> za dany miesiąc (pole za_okres w tabeli platnosci) nie jest on wybierany.
> Jak zmodyfikowac
> to pytanie, zeby byl on na liscie wynikow? Z gory dzieki za kazda
> podpowiedz, bo juz nie mam pomyslu,
> a dzien wybitnie nie moj :(.

nie wglebialem sie ale tak cos klepne:

moze dodac jeszcze ( ...... OR p.za_okres IS NULL ) AND ??

pozdr
rafal

--
Archiwum grupy: http://niusy.onet.pl/pl.comp.bazy-danych




- 25-04-2006 00:02

  > I pytanie:
> select k.lp, k.nazwa, k.aktywne, l.nazwa, p.wplacono from klient k,
> platnosci p left join lokalizacje l on (k.lokalizacja=l.lp) where
> p.za_okres='2006.04' and p.klient_id=k.lp order by k.nazwa asc
>

select k.lp, k.nazwa, k.aktywne, l.nazwa, p.wplacono from klient k
left join platnosci p on (k.lp = p.klient_i)
left join lokalizacje l on (k.lokalizacja=l.lp) where
p.za_okres='2006.04'
order by k.nazwa asc

Tak bym to zrobil na MSSQLu, czy pojdzie na mySQLu tego nie wiem, ale chyba
tak :-)

Alwik




no-name - 25-04-2006 00:02

  Rafalsxat wrote:

>
> ----- Original Message -----
> From: "no-name" <michal@linuxstuff.pl>
> To: <pl-comp-bazy-danych@newsgate.pl>
> Sent: Monday, April 24, 2006 1:36 PM
> Subject: problem z pytaniem sql
>> select k.lp, k.nazwa, k.aktywne, l.nazwa, p.wplacono from klient k,
>> platnosci p left join lokalizacje l on (k.lokalizacja=l.lp) where
>> p.za_okres='2006.04' and p.klient_id=k.lp order by k.nazwa asc
>> Problem jest taki, że jezeli jest dodany klient, który nie posiada swojej
>> wplaty
>> za dany miesiąc (pole za_okres w tabeli platnosci) nie jest on wybierany.
>> Jak zmodyfikowac
>> to pytanie, zeby byl on na liscie wynikow? Z gory dzieki za kazda
>> podpowiedz, bo juz nie mam pomyslu,
>> a dzien wybitnie nie moj :(.
>
> nie wglebialem sie ale tak cos klepne:
>
> moze dodac jeszcze ( ...... OR p.za_okres IS NULL ) AND ??

Dziękuję za pomoc, rozwiązaniem sa Wasze obie odpowiedzi :)

select k.lp, k.nazwa, k.aktywne, l.nazwa, p.wplacono from klient k
left join platnosci p on (k.lp = p.klient_id)
left join lokalizacje l on (k.lokalizacja=l.lp) where
p.za_okres='2006.04' or p.za_okres is null
order by k.nazwa asc

--
Miq
  • 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?_?= [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= 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?= =?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • adwokat.keep.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