Pytanie o MySQL (zapytanie) 
 
Pytanie o MySQL (zapytanie)
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

Pytanie o MySQL (zapytanie)



milutka - 17-06-2007 00:16
Pytanie o MySQL (zapytanie)
  Witam,
chcialbym zbudowac dosc spore zapytanie. Nie wiem ogolnie czy jest to
mozliwe do wykonania w samym MySQL, lecz zawsze warto zapytac.
Wiec zaczynam tlumaczenie:

Istnieje baza produktow.
Struktura produktu wyglada tak:

--
product ...
price float(7,2),
vat_percents INT,
promotion_percents INT,
promotion_price float(7,2)
--

Cena produktu to:

$this->vat = $result['vat_percents'];
if($this->vat > 0) {
$this->price = $result['price']+(($this->vat/100)* $result['price']);
if($result['promotion_percents'] > 0)
$this->price = $this->price*($this->promotion_percents/100);
if($result['promotion_price'] > 0) {
$this->old_price = $this->price;
$this->price = $this->promotion_price+($this->promotion_price*($this->vat/100));
}
}
else {
$this->price = $result['price'];
if($result['promotion_percents'] > 0)
$this->price = $this->price*($this->promotion_percents/100);
if($result['promotion_price'] > 0) {
$this->old_price = $this->price;
$this->price = $this->promotion_price;
}
}

I teraz jak posortowac w MySQL rekordy produktow wg. ceny (price, ktore
osiagnelismy w $this->price)? ;-)





=?UTF-8?B?RmlsaXAgUmVtYmlhxYJrb3dza2k=?= - 17-06-2007 00:16

  milutka wrote at 2007-05-30 15:59:
> Witam,
> chcialbym zbudowac dosc spore zapytanie. Nie wiem ogolnie czy jest to
> mozliwe do wykonania w samym MySQL, lecz zawsze warto zapytac.
> Wiec zaczynam tlumaczenie:
>
> Istnieje baza produktow.
> Struktura produktu wyglada tak:
>
> --
> product ...
> price float(7,2),
> vat_percents INT,
> promotion_percents INT,
> promotion_price float(7,2)
> --
>
> Cena produktu to:
>
> $this->vat = $result['vat_percents'];
> if($this->vat > 0) {
> $this->price = $result['price']+(($this->vat/100)* $result['price']);
> if($result['promotion_percents'] > 0)
> $this->price = $this->price*($this->promotion_percents/100);
> if($result['promotion_price'] > 0) {
> $this->old_price = $this->price;
> $this->price = $this->promotion_price+($this->promotion_price*($this->vat/100));
> }
> }
> else {
> $this->price = $result['price'];
> if($result['promotion_percents'] > 0)
> $this->price = $this->price*($this->promotion_percents/100);
> if($result['promotion_price'] > 0) {
> $this->old_price = $this->price;
> $this->price = $this->promotion_price;
> }
> }
>
> I teraz jak posortowac w MySQL rekordy produktow wg. ceny (price, ktore
> osiagnelismy w $this->price)? ;-)

opcja 1)
SELECT * FROM product
ORDER BY CASE WHEN vat_percents > 0 AND promotion_price > 0 THEN promotion_price * ( 1 + vat_percents / 100 ) ELSE CASE
WHEN ... makabra .. makabra ... END END;

opcja 2) dodaÄ? pole wyliczane (trigger?) i po nim sortowaÄ?




=?UTF-8?B?UGF3ZcWCIE1hdGVqc2tp?= - 17-06-2007 00:16

  milutka wrote:
> Witam,
> chcialbym zbudowac dosc spore zapytanie. Nie wiem ogolnie czy jest to
> mozliwe do wykonania w samym MySQL, lecz zawsze warto zapytac.
> Wiec zaczynam tlumaczenie:
>
> Istnieje baza produktow.
> Struktura produktu wyglada tak:
>
> --
> product ...
> price float(7,2),
> vat_percents INT,
> promotion_percents INT,
> promotion_price float(7,2)
> --
>
> Cena produktu to:
>
> $this->vat = $result['vat_percents'];
> if($this->vat > 0) {
> $this->price = $result['price']+(($this->vat/100)* $result['price']);
> if($result['promotion_percents'] > 0)
> $this->price = $this->price*($this->promotion_percents/100);
> if($result['promotion_price'] > 0) {
> $this->old_price = $this->price;
> $this->price = $this->promotion_price+($this->promotion_price*($this->vat/100));
> }
> }
> else {
> $this->price = $result['price'];
> if($result['promotion_percents'] > 0)
> $this->price = $this->price*($this->promotion_percents/100);
> if($result['promotion_price'] > 0) {
> $this->old_price = $this->price;
> $this->price = $this->promotion_price;
> }
> }
>
> I teraz jak posortowac w MySQL rekordy produktow wg. ceny (price, ktore
> osiagnelismy w $this->price)? ;-)

Zapisz to to samo w SQL i wstaw zamiast ORDER BY.
A najlepiej, to dodaj kolumnÄ?, gdzie bÄ?dziesz sobie przechowywa??a tÄ? warto??Ä?
(wiem ??e to niezgodne z teoriÄ?, ale bardzo wygodne w praktyce!).

--
P.M.




szaman - 17-06-2007 00:16

 
> Zapisz to to samo w SQL i wstaw zamiast ORDER BY.
> A najlepiej, to dodaj kolumnÄ?, gdzie bÄ?dziesz sobie przechowywa??a tÄ? warto??Ä?
> (wiem ??e to niezgodne z teoriÄ?, ale bardzo wygodne w praktyce!).
>
Denormalizacja jest jak najbardziej zgodna z teoriÄ? - tylko musi byÄ?
uzasadniona (z reszta jak ka??de dzia??anie ;-)

P??eÄ? "pytacza" jest rzeczywi??cie zagadkowa bo to jak o sobie pisze nie
przystaje do nick'a.
  • 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 - jak =?ISO-8859-2?Q?wyeksportowa=E6_zawarto=B6=E6_wie?==?ISO-8859-2?Q?lkiej_tabeli?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • ets2.xlx.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