ďťż
 
Zapytanie o te rekordy, ktore maja minimalna ceche ďťż
 
Zapytanie o te rekordy, ktore maja minimalna ceche
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

Zapytanie o te rekordy, ktore maja minimalna ceche



Krzysiek - 16-01-2007 00:01
Zapytanie o te rekordy, ktore maja minimalna ceche
  Witam,

mam prośbę o pomoc, jak zrobić zapytanie, które z takiego widoczku wybierze
mi tylko te towary, które zostały sprzedane w cenie minimalnej. Oczywiście
chciałbym móc później agregować te dane i zbadać wartość.

FAKTURA | TOWAR | CENA
id_faktury1 | towar1 | 5,00
id_faktury2 | towar2 | 2,99
id_faktury3 | towar3 | 4,99
id_faktury4 | towar3 | 6,80
id_faktury5 | towar1 | 5,10
id_faktury6 | towar2 | 2,99
id_faktury7 | towar2 | 3,99

Wynik:
id_faktury1 | towar1 | 5,00
id_faktury2 | towar2 | 2,99
id_faktury6 | towar2 | 2,99
id_faktury3 | towar3 | 4,99

Oczywiście kolumn jest więcej. Tu daję tylko kolumny najbardziej istotne.

pozdrawiam
Krzysiek





Matt Z - 16-01-2007 00:03

  Krzysiek napisał(a):
> Witam,
>
> mam proďż˝bę o pomoc, jak zrobić zapytanie, które z takiego widoczku wybierze
> mi tylko te towary, które zostały sprzedane w cenie minimalnej.

Jaki DBMS?

Select * from TABLE t1 where t1.CENA = (SELECT min(CENA) FROM TABLE
WHERE t1.TOWAR = TOWAR)

> Oczywi�cie
> chciałbym móc póďż˝niej agregować te dane i zbadać wartoďż˝ć.

a tego to już nie rozumiem

--
Matt Z




Krzysiek - 16-01-2007 00:47

 
Użytkownik "Matt Z" <matt@z.pl.usun.koncowke> napisał w wiadomości
news:eoh4le$rtu$1@news.onet.pl...
Krzysiek napisał(a):

> Select * from TABLE t1 where t1.CENA = (SELECT min(CENA) FROM TABLE WHERE
> t1.TOWAR = TOWAR)

Dzięki za selecta z selecta, jest on oczywisty ale bardzo dużo kosztuje.
Nie wiem czemu, bo wewnętrzne zapytanie zwraca tylko minimum (tablica
towarów i ich minimalnych cen).
No żeby tak było to wewnątrz trzeba by...
SELECT TOWAR, min(CENA) FROM TABLE WHERE t1.TOWAR = TOWAR

>Jaki DBMS?

ORACLE 9

>> chciałbym móc później agregować te dane i zbadać wartość.
>a tego to już nie rozumiem
Tzn. to co pozostanie np zsumować i powiedzieć, że taka część obrotu poszła
po cenie minimalnej

Krzysiek




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 17-01-2007 00:05

  Krzysiek wrote:
> Użytkownik "Matt Z" <matt@z.pl.usun.koncowke> napisał w wiadomości
> news:eoh4le$rtu$1@news.onet.pl...
> Krzysiek napisał(a):
>
>> Select * from TABLE t1 where t1.CENA = (SELECT min(CENA) FROM TABLE WHERE
>> t1.TOWAR = TOWAR)
>
> Dzięki za selecta z selecta, jest on oczywisty ale bardzo dużo kosztuje.
> Nie wiem czemu, bo wewnętrzne zapytanie zwraca tylko minimum (tablica
> towarów i ich minimalnych cen).
> No żeby tak było to wewnątrz trzeba by...
> SELECT TOWAR, min(CENA) FROM TABLE WHERE t1.TOWAR = TOWAR
>
>> Jaki DBMS?
>
> ORACLE 9
>
>>> chciałbym móc później agregować te dane i zbadać wartość.
>> a tego to już nie rozumiem
> Tzn. to co pozostanie np zsumować i powiedzieć, że taka część obrotu poszła
> po cenie minimalnej

SELECT sum(m.cena*ilosc) / sum(t.cena*ilosc)
FROM t
LEFT JOIN
(SELECT id,min(cena) as cena FROM t GROUP BY id) m
ON (t.id = m.id and t.cena = m.cena)

Coś takiego?

--
P.M.





patryk.manterys@gmail.com - 18-01-2007 00:01

  Krzysiek napisał(a):
> Witam,
>
> mam prośbę o pomoc, jak zrobić zapytanie, które z takiego widoczku wybierze
> mi tylko te towary, które zostały sprzedane w cenie minimalnej. Oczywiście
> chciałbym móc później agregować te dane i zbadać wartość.
>
> FAKTURA | TOWAR | CENA
> id_faktury1 | towar1 | 5,00

A nie lepiej tak?

SELECT TOWAR, SUM(CENA) AS "Kwota w sumie", MIN(CENA) AS "Minimalna
cena", COUNT(TOWAR) AS "Ilosc sprzedanych towarow"
FROM TABELA
GROUP BY TOWAR

Pozdrawiam,
Patryk Manterys




Szymon Adamala - 18-01-2007 00:01

  > Dzięki za selecta z selecta, jest on oczywisty ale bardzo dużo kosztuje.

> >Jaki DBMS?
> ORACLE 9

Skoro zależy Ci na koszcie i używasz Oracla, to:

SELECT faktura, towar, cena FROM
(
SELECT faktura, towar, cena, rank() OVER(PARTITION BY towar ORDER BY cena ASC)
ranking
FROM TEST
)
WHERE ranking = 1;

(testowałem po 10g, ale w 9 też powinno działać)

Pozdrawiam,
Szymon

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




Krzysiek - 18-01-2007 00:01

 
Użytkownik <patryk.manterys@gmail.com> napisał w wiadomości

SELECT TOWAR, SUM(CENA) AS "Kwota w sumie", MIN(CENA) AS "Minimalna
cena", COUNT(TOWAR) AS "Ilosc sprzedanych towarow"
FROM TABELA
GROUP BY TOWAR

Dzięki za propozycję. Tojednak za mało informacji, bo zanim zsumuję to
chciałbym mieć wyliczone te faktury, na których był ten towar (dokładniej na
pozycjach faktur). Chce to ubrać w raport i wypuścić do userów.
Grupowanie jest w drugiej kolejności. Najpierw muszę mieć wyliczenie.
pozdrawiam
Krzysiek




Krzysiek - 18-01-2007 00:01

 
Użytkownik "Paweł Matejski" <madej@spam.madej.pl.eu.org> napisał w
wiadomości news:eoidgu$sm0$1@inews.gazeta.pl...

> SELECT sum(m.cena*ilosc) / sum(t.cena*ilosc)
> FROM t
> LEFT JOIN
> (SELECT id,min(cena) as cena FROM t GROUP BY id) m
> ON (t.id = m.id and t.cena = m.cena)
>
> Coś takiego?

Nie działa mi to. Jesteś pewien tego wikłania aliasów?
Przyznam, że LEFT JOIN nie jest jescze przeze mnie przećwiczone.

Doczytam i powalczę. Dam znać jak zadziała.

pozdrawiam
Krzysiek




=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 18-01-2007 00:38

  Krzysiek wrote:
> Użytkownik "Paweł Matejski" <madej@spam.madej.pl.eu.org> napisał w
> wiadomości news:eoidgu$sm0$1@inews.gazeta.pl...
>
>> SELECT sum(m.cena*ilosc) / sum(t.cena*ilosc)
>> FROM t
>> LEFT JOIN
>> (SELECT id,min(cena) as cena FROM t GROUP BY id) m
>> ON (t.id = m.id and t.cena = m.cena)
>>
>> Coś takiego?
>
>
> Nie działa mi to.

Mnie też. Tylko ja po prostu tego nie odpalałem, a Ty? ;)

> Jesteś pewien tego wikłania aliasów?

Raptem jeden alias!

> Przyznam, że LEFT JOIN nie jest jescze przeze mnie przećwiczone.
>
> Doczytam i powalczę. Dam znać jak zadziała.

Polecam standardowy sposób debugowania zapytań agregujących - wyrzucić funkcję
agregujące:
SELECT ilosc,t.id,t.cena,m.cena
.....

--
P.M.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle, SQL, PL/SQL. Jak =?ISO-8859-2?Q?napisa=E6_zapytanie=2C?==?ISO-8859-2?Q?_kt=F3re_zwr=F3ci_nazw=EA_atrybutu=2C_kt=F3reg o?==?ISO-8859-2?Q?_warto=B6ci_spe=B3niaj=B1_zadany_warunek?= =?ISO-8859-2?Q?Narz=EAdzie_do_budowania_zapyta=F1_SQL=2C?==?I SO-8859-2?Q?_PL/PgSQL=2C_PL/SQL=2C_T-SQL?= phpMyAdmin zadaje =?ISO-8859-2?Q?z=B3e_zapytania=2E=2E=2E_Dl?==?ISO-8859-2?Q?aczego=3F?= [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?= [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?= [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?= mecze sie i mecze i nic - zapytanie czesciowe [sql][pgsql] zapytanie sql zapytanie do =?ISO-8859-2?Q?dw=F3ch_tabel_z_limitem_wier?==?ISO-8859-2?Q?szy?=
  • 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