Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem MySQL řádek k MAX

Ahoj. Mám tabulku listing_table_products.

A v ní mám dva sloupce. První se jmenuje products_tax_class druhý se jmenuje final_price.

Můj dotaz je, jak zobrazím maximální final_price a k ní příslušné products_tax_class_id ?

Zkoušel jsem toto:

select
p.products_tax_class_id as mincena_tax_id ,MAX(final_price) as maxcena
from listing_table_products p
group by p.products_tax_class_id

Ale záznam v řádku si nekoresponduje.

Předmět Autor Datum
Podobně, jak jsem navrhoval zde: http://pc.poradna.net/q/view/1056703-sql-dotaz-men si-rozcvicka U…
hynajs 16.07.2013 08:03
hynajs
Nebo zkouším to i takhle: Mám tento dotaz: SELECT products_tax_class as tax_min from listing_table…
Flash_Gordon 16.07.2013 08:23
Flash_Gordon
Musí fungovat tenhle základ: SELECT min(p.final_price),pd.products_tax_class from listing_table_pro…
hynajs 16.07.2013 08:31
hynajs
Díky za radu. Zkusil jsem spodní SQL a hlásí tuhle nepříjemnost: Could not run query: Can't reopen…
Flash_Gordon 16.07.2013 08:35
Flash_Gordon
Ta TABULKA listing_table_products je temporary ?
hynajs 16.07.2013 08:40
hynajs
Ano.
Flash_Gordon 16.07.2013 08:41
Flash_Gordon
Aha, tak tohle jsem ještě neřešil. Zkus odkaz : http://stackoverflow.com/questions/11384045/select…
hynajs 16.07.2013 08:45
hynajs
Ha ! SELECT MAX(value) INTO @max FROM test; SELECT * FROM test WHERE value = @max; Otestuju to ta…
Flash_Gordon 16.07.2013 08:48
Flash_Gordon
Ty chceš jako JEDEN ten řádek?
AZOR 16.07.2013 08:51
AZOR
Už jsem to popisoval. jak zobrazím maximální final_price a k ní příslušné products_tax_class_id ?…
Flash_Gordon 16.07.2013 08:56
Flash_Gordon
jak zobrazím maximální final_price a k ní příslušné products_tax_class_id ? Ano, takhle jsi to popi…
AZOR 16.07.2013 09:00
AZOR
Jak jako nekoresponduje? Podle čeho to grupuješ s tim to koresponduje.
AZOR 16.07.2013 08:08
AZOR
Problém je v tom, s čím to grupuju? Zkusil jsem to bez group by a už to hlásí: Could not run query…
Flash_Gordon 16.07.2013 08:14
Flash_Gordon
Žeby konečně mysql začalo hlásit tohle jako chybu, bylo na čase. Jestli je to to, co si myslim, tak…
AZOR 16.07.2013 08:47
AZOR
Raději uved 10 řádku z tabulky a jakej chceš výsledek jinak se nikam nedoberem. Pořád si nevysvětlil…
AZOR 16.07.2013 08:48
AZOR
select products_tax_class_id, final_price from listing_table_products where final_price = (select ma… poslední
wam_Spider007 16.07.2013 10:38
wam_Spider007

Nebo zkouším to i takhle:

Mám tento dotaz:

SELECT products_tax_class as tax_min
from listing_table_products p left join listing_table_products_name pd
on p.products_id=pd.products_id
left join listing_table_manufacturers m on p.products_id=m.products_id
order by pd.products_name where final_price = min(final_price)

A tady to hlásí:

Could not run query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where final_price = min(final_price)' at line 1

Musí fungovat tenhle základ:

SELECT min(p.final_price),pd.products_tax_class
from listing_table_products p left join listing_table_products pd
on p.products_id=pd.products_id

Pak na něj nabal ostatní (name apod.).

EDIT:

Určitě tohle:

SELECT min(p.final_price),pd.products_id
from listing_table_products p left join listing_table_products pd
on p.products_id=pd.products_id

jak zobrazím maximální final_price a k ní příslušné products_tax_class_id ?

Ano, takhle jsi to popisoval - ale to jsem pochopil tak jak jsi to napsal a tak jak jsem mozna pochopit chtel , ale já bych si představil pro to co chceš popis tenhle:

jak zobrazím maximální final_price v celé tabulce a kní všechny products_tax_class_id s touto cenou

Žeby konečně mysql začalo hlásit tohle jako chybu, bylo na čase.

Jestli je to to, co si myslim, tak nemužeš mít agregační funkci COUNT(*), MAX v selectu + sloupec(e) bez agregační funkce bez klauzule GROUP BY ve kterém jsou vyjmenovány všechny sloupec(e), které máš bez agregační funkce. Neb to nemá smysl

select count(b), a from table; Pochopitelně nejde, neb to nemá smysl.

Máš tam dva sloupce ne? Class_id A cenu.

select max(cena), class_id from table group by class_id.

select products_tax_class_id, final_price
from listing_table_products
where final_price = (select max(final_price) from listing_table_products)
limit 1;

je to ale kravina, pretoze rovnakych maximalnych final price moze byt viac. niekde si urobil chybu v navrhu DB.

a este si nepovedal kolko riadkov zo svojho vystupu ocakavas. ci to ma byt jedna maximalna final price, alebo viacero za nejaky produkt. ak viacero, tak treba definovat podla coho ich chces zistit. najlepsie sem napisat co mas v tabulke a co by si chcel dostat zo selectu.

Zpět do poradny Odpovědět na původní otázku Nahoru