ďťż
 
MySQL - kwerenda krzyzowa lub grupowanie na dwoch poziomach ďťż
 
MySQL - kwerenda krzyzowa lub grupowanie na dwoch poziomach
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

MySQL - kwerenda krzyzowa lub grupowanie na dwoch poziomach



Sinuhe - 13-11-2006 00:47
MySQL - kwerenda krzyzowa lub grupowanie na dwoch poziomach
  Witam,

mam strukture bazy jak na zalaczonym obrazku:

http://tinyurl.com/ygxt5t

Teraz chce zrobic kwerende grupujaca na poziomie id_wystepu zawierajaca trzy
kolumny: wolne miejsca, zarezerwowane i sprzedane. Wolne miejsca to pole
tabeli sektory - wiec trzeba posumowac po wszystkich sektorach w ramach
wystepu. Natomiast zarezerwowane i sprzedane to suma po zamowieniach w
zaleznosci od wartosci pola status.

Ta kwerenda wyglada mniej wiecej tak:
SELECT id_wystepu,
SUM(wolne_miejsca) as wolne_miejsca
SUM(IF(status<=2, ilosc_zamowionych_miejsc, 0)) as
zarezerwowane,
SUM(IF(status=3, ilosc_zamowionych_miejsc, 0)) as sprzedane
FROM wystepy w, sektory s, zamowienia z
WHERE s.id_wystepu=w.id_wystepu
AND s.id_sektora=z.id_sektora
GROUP BY 1
LIMIT $first, $count

Kwerenda oczywiscie dziala, i oczywiscie liczy mi wielokrotnie pole
wolne_miejsca... Nie wiem jak poprawic powyzsza kwerende, bede wdzieczny za
sugestie :) Oczywiscie bede musial porobic zlaczenia zewnetrzne, ale to
dopiero jak sobie poradze z tym problemem.

dzieki,pozdr, s.





Michał 'Khorne' Rzechonek - 13-11-2006 00:48

  Sinuhe wrote:
> Teraz chce zrobic kwerende

Boże jak ja nienawidzę tego "tłumaczenia". "Query" to jest
"zapytanie"
a nie jakieś %$#!!@ kalki...

--
Michał 'Khorne' Rzechonek




Grzegorz Danowski - 13-11-2006 00:48

  Użytkownik "Michał 'Khorne' Rzechonek" <khornik@gmail.com> napisał w
wiadomości news:1162820147.258709.153800@e3g2000cwe.googlegro ups.com...
<cite>
> Teraz chce zrobic kwerende

Boże jak ja nienawidzę tego "tłumaczenia". "Query" to jest
"zapytanie"
a nie jakieś %$#!!@ kalki...

</cite>

A kto wg Ciebie jest autorem tej kalki językowej? Jeśli myślisz, że pojawiła
się ona dopiero w epoce komputerów, to zajrzyj do swojego słownika wyrazów
obcych, a znajdziesz tam np. kwerendę biblioteczna.
Pozdrawiam
Grzegorz




Sinuhe - 13-11-2006 00:48

  Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał :
> Użytkownik "Michał 'Khorne' Rzechonek" <khornik@gmail.com> napisał w
> wiadomości news:1162820147.258709.153800@e3g2000cwe.googlegro ups.com...
> <cite>
>> Teraz chce zrobic kwerende
>
> Boże jak ja nienawidzę tego "tłumaczenia". "Query" to jest
> "zapytanie"
> a nie jakieś %$#!!@ kalki...
>
> </cite>
>
> A kto wg Ciebie jest autorem tej kalki językowej? Jeśli myślisz, że
> pojawiła się ona dopiero w epoce komputerów, to zajrzyj do swojego
> słownika wyrazów obcych, a znajdziesz tam np. kwerendę biblioteczna.
> Pozdrawiam
> Grzegorz

Jezeli juz OT, to pozwole sobie na cytat ze Slownika Jezyka Polskiego:

"kwerenda
a.. 1. <poszukiwanie potrzebnej informacji w aktach, archiwach,
bibliotekach itp.>
2. daw. <poszukiwanie kogoś lub czegoś>
3. daw. <śledztwo w jakiejś sprawie>
. kwerendować"

Oczywiscie w uzyciu ze wzgledu na lokalizacje accessa, ale mnie tam sie
podoba, bardziej niz "zapytanie" (ktore swoja droga bardziej blizej ma do
"inquiry" niz "query" IMHO :)

Ale moze jednak ktos podpowie jak zrobic takie grupowanie w dwoch krokach?
;)

pozdr, s.





Grzegorz Danowski - 13-11-2006 00:48

  Użytkownik "Sinuhe" <sinuhe22@wp.pl> napisał w wiadomości
news:eikmv8$5jt$1@nemesis.news.tpi.pl...
> Witam,
>
> mam strukture bazy jak na zalaczonym obrazku:
>
> http://tinyurl.com/ygxt5t
>
> Teraz chce zrobic kwerende grupujaca na poziomie id_wystepu zawierajaca
> trzy kolumny: wolne miejsca, zarezerwowane i sprzedane. Wolne miejsca to
> pole tabeli sektory - wiec trzeba posumowac po wszystkich sektorach w
> ramach wystepu. Natomiast zarezerwowane i sprzedane to suma po
> zamowieniach w zaleznosci od wartosci pola status.
>
> Ta kwerenda wyglada mniej wiecej tak:
> SELECT id_wystepu,
> SUM(wolne_miejsca) as wolne_miejsca
> SUM(IF(status<=2, ilosc_zamowionych_miejsc, 0)) as
> zarezerwowane,
> SUM(IF(status=3, ilosc_zamowionych_miejsc, 0)) as sprzedane
> FROM wystepy w, sektory s, zamowienia z
> WHERE s.id_wystepu=w.id_wystepu
> AND s.id_sektora=z.id_sektora
> GROUP BY 1
> LIMIT $first, $count
>
> Kwerenda oczywiscie dziala, i oczywiscie liczy mi wielokrotnie pole
> wolne_miejsca... Nie wiem jak poprawic powyzsza kwerende, bede wdzieczny
> za sugestie :) Oczywiscie bede musial porobic zlaczenia zewnetrzne, ale to
> dopiero jak sobie poradze z tym problemem.
>

Nie napisałeś jaką wersją MySQL dysponujesz, ale jeśli można w niej używać
podzapytań to spróbuj:

Select
id_wystepu,
Sum(S.wolne_miejsca) As wolne_miejsca,
Sum(Z.zarezerwowane) As zarezerwowane,
Sum(Z.sprzedane) As sprzedane
From
sektory As S
Inner Join
(Select
id_zamowienia,
SUM(IF(status<=2, ilosc_zamowionych_miejsc, 0)) as zarezerwowane,
SUM(IF(status=3, ilosc_zamowionych_miejsc, 0)) as sprzedane
From
zamowienia
Group By
id_zamowienia) As Z
On
S.id_zamowienia = Z.id_zamowienia
Group By
S.id_wystepu
Limit
$first, $count

Pozdrawiam
Grzegorz




Sinuhe - 13-11-2006 00:48

  Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał w
wiadomości news:eiocgf$77r$1@inews.gazeta.pl...
> Nie napisałeś jaką wersją MySQL dysponujesz, ale jeśli można w niej używać
> podzapytań to spróbuj:
> (...) Pozdrawiam
> Grzegorz
>

MySQL 4.1.21, wiec teoretycznie podzapytania obsluguje

po poludniu sprobuje zastosowac podana propozycje, ale mam jeszcze pytanie:
czy cos takiego jest w ogole mozliwe bez podzapytan? myslalem o samych
IF-ach, cos na zasadzie opisanej w tym artykule:

http://tinyurl.com/y8mcy4

dziekuje i pozdrawiam, s.




Grzegorz Danowski - 13-11-2006 00:48

  Użytkownik "Sinuhe" <sinuhe22@wp.pl> napisał w wiadomości
news:eipb0l$bmc$1@nemesis.news.tpi.pl...
> Użytkownik "Grzegorz Danowski" <gdn__na@serwerze__poczta.onet.pl> napisał
> w wiadomości news:eiocgf$77r$1@inews.gazeta.pl...
>> Nie napisałeś jaką wersją MySQL dysponujesz, ale jeśli można w niej
>> używać podzapytań to spróbuj:
>
> MySQL 4.1.21, wiec teoretycznie podzapytania obsluguje
>
> po poludniu sprobuje zastosowac podana propozycje, ale mam jeszcze
> pytanie: czy cos takiego jest w ogole mozliwe bez podzapytan? myslalem o
> samych IF-ach, cos na zasadzie opisanej w tym artykule:
>
> http://tinyurl.com/y8mcy4

Jakoś nie widzę związku tego czego potrzebujesz z zapodanym przez Ciebie
artykułem.
Grzegorz
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?= [mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?= [MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?= [mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?= [MySQL] =?ISO-8859-2?Q?z=B3=B1czenie_tabeli_u=BFytkownik_i?==?ISO-8859-2?Q?_zdj=EAcia_z_wyborem_zdj=EAcia_domy=B6lnego?= [MySQL] Jak =?ISO-8859-2?Q?wpisa=E6_do_tabeli_pozycje_dl?==?ISO-8859-2?Q?a_wierszy_gdybym_te_wiersze_wybiera=B3_w_ok?== ?ISO-8859-2?Q?re=B6lonej_kolejno=B6ci_=3F?= Gdzie MySQL 4.1, a gdzie 5.0? [MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?= [MS SQL] "set names" (mySQL) w MS SQL [mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • lisinski.htw.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