Keresés
Hírlevél
 
Kiemelt témák
»10 éves a prog.hu
»Párhuzamos programozás
»Párhuzamos végrehajtás == szemléletváltás!
Állás/munka
»Tanárt keresek
»Port.hu film tartalmának kinyerése
»PHP programozó kerestetik
»Fejlesztői megbízásokat/munkát keresek
»Senior .Net fejlesztő szabad kapacitással
» több téma
Tudástár
?PHP if-nél megakadtam
? torrent file helyett txt-t
?PHP:keresés szó szerint...
Mobilinternet használata robotokban
?Delphi Form méretezési probléma
?HelpProvider alkalmazás .HLP fájlban
2 oldalas form
SetFocus hatástalan
?XP-n megy Win7-en megakad (Delphi)
?Hiányos mp3 hallgatás telefonról! C#
A legalsó scrollTop értéket nem veszi figyelembe
3 dív pozicionálása (2 egymás mellé, 1 ezek alá)
?Curl login Joomla-ba (PHP)
*Java Axis webservice file küldés és fogadás
?C# scrollozható form
» több téma
Társalgó
»Az általános műveltség része kellene, hogy legyen a programozni tudás?
»Get flood elleni védekezés
»Újra programozni fog a Facebook alapítója és multimilliárdos elnöke
»Firebird - Több adatbázis vagy egy?
»Clipper kontra XP
»Webshop ár kb...
»Hogy működik egy apróhirdető oldal (MySQL)?
»Körlevél script PHP + MySQL
»New project probléma VS 2010 C#
»Kezdőknek:grafikus felület választás
» több téma
ASPC#C++CSSDelphiFlashJavaJavaScriptPascalPerlPHPPythonuniPaaSVisual BasicVisual C++  »    

Tudástár

»

SELECT min() érték feltétellel

»

SELECT min() érték feltétellel

nyitotta: rakétakutya, idő: 2012.02.09., moderátor: moderator, megoldás elfogadva: 2012.02.10. 14:31
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Adatbázisok » MySQL

Sorrend:
Időzóna:
Blokkméret:
Oszd meg másokkal is!
Szia
egy táblában legkisebb árat keresem ami a készletet is figyelembe veszi
egy (SELECT min(ar) FROM tabla GROUP BY azonosito WHERE keszlet>0) lekérdezéssel egyszerűen kilistázom a legkisebb árakat amik készleten vannak, ez még megy :)
viszont az már nem megy, hogy a minimum árat azok közül válogassa, ahol van darabszám, de ahol egy csoportba egyáltalán nincs ott is kapjak rekordot a kapcsolódó legkisebb árral!

azonosito ár keszlet

1 990 5
1 550 0
1 800 3

2 600 0
2 750 0

kívánt eredmény:

1 800 3
2 600 0

köszi ha írsz
pontos alak:

SELECT  [DISTINCT]  oszloplista projekció
  FROM  táblanévlista Descartes-szorzat
 [WHERE  feltétel] szelekció
 [GROUP BY  oszloplista csoportonként összevonás
 [HAVING  feltétel] ] csoport-szelekció
 [ORDER BY  oszloplista]; rendezés

SELECT min(ar) FROM tabla WHERE keszlet>0 GROUP BY azonosito előzmény
Jaj igen köszi felcseréltem, de nem az a lényeg (sajnos) előzmény
de a kérdésben a kívánt eredménynél a készletnél is szerepel egy 0ás érték, ez akkor most hogyan van?:)
[SZERK] - bocsi, a kérdés vége lemaradt :)
most 2 óra szünet, ha addig nem születik megoldásod, akkor letesztelem, mert ezt csak fejből írtam előzmény
elsődlegesen a készleten lévő minimum árra vagyok kíváncsi, de ha nincs készleten egyáltalán akkor is meg kell hogy kapjam a minimum árat. előzmény
SELECT min(ar) FROM tabla WHERE keszlet>0 GROUP BY azonosito
Feltételnek azt adtad meg, hogy azokat a termékeket listázza ki, ami van a készleten. Ahhoz, hogy kiírja azokat is, ami nincs készleten, egyszerűen töröld a feltételt, a készlet alapértelmezett értékét pedig állítsd 0-ra. előzmény
subquery:

select if(MaxOfKészlet=0,MinOfÁr, Kif1), Azonosító from (

SELECT Min(If(Készlet>0,Ár,99999999)) AS Kif1, Min(tabla.ár) AS MinOfár, tabla.Azonosító, Max(tabla.Készlet) AS MaxOfKészlet
FROM tabla
GROUP BY tabla.Azonosító) a

A 99999999 egy szép nagy szám, ami sors lesz ár.

------
Ha a megjelenítő programban is "javíthatsz", akkor csak a belső
SELECT Min(If(Készlet>0,Ár,99999999)) AS Kif1, Min(tabla.ár) AS MinOfár, tabla.Azonosító, Max(tabla.Készlet) AS MaxOfKészlet
FROM tabla
GROUP BY tabla.Azonosító
kell


És akkor pl. php-ban íratod ki
echo ($sor['MaxOfKészlet']=0)?$sor['MinOfÁr']: $sor['Kif1'];
a megfelelőt, ha a rekord a $sor tömbben van. előzmény
Vagy egy szép union:
SELECT Min(ár) AS kisar, Azonosító FROM tabla where készlet>0 GROUP BY Azonosító
union
SELECT Min(ár) AS kisar, Azonosító FROM tabla GROUP BY Azonosító  having max(készlet)=0
előzmény
Jaj de jó! NAgyon király!!!
Köszi!!! előzmény
Oszd meg másokkal is!
Belépés
E-mail cím:
Jelszó:

cvonline.hu
»iOS fejlesztő
»Senior web programozó
»Java fejlesztő (Bécs)
»Java fejlesztő (front-end, backend)
»PHP fejlesztő (Ausztria, Németország)
»Solaris rendszermérnök
» még több állás
Kérdésed van?
Problémád, kérdésed van? Segítünk neked is. Csak kattints ide!
RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Árnyék1.100
»silentworks910
»Robi80910
»szabofe860
»bubori.attila760
»djjjozsi680
»Galovics660
»Riha590
»Frostech0560
»Csaboka2550
A nap kifejezései
»Adatszegmens
»Konstans
»Makró
» ugrás a wikire
Hírek
»Az általános műveltség része kellene, hogy legyen a programozni tudás?
»Újra programozni fog a Facebook alapítója és multimilliárdos elnöke
»Vizuális felülettervezőt adott ki .NET-es Android-alkalmazásfejlesztéshez a Xamarin
» több hír
PC Fórum hírek
»Elvennék és felhasználóinak adnák a Facebook összes pénzét
»Rejtélyes ikont dugdosgat a Microsoft a Windows 8-ban
»Út a Windows 8-ig - a Windows rendszerek három évtizedének története, képekben
»Mától bárki regisztrálhat a so.cl-ra, a Microsoft közösségi oldalára
»Megérkeztek az első képek az Unreal Engine 4 játékmotorról
»Itt az első videó a a Firefox Windows 8-as változatáról
»Nyártól akár 150 megabites nethozzáférést is ad az Invitel
»Kilenc kritikus biztonsági hibát javít az új Google Chrome
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Muki987
»NevemTeve
»Ivn
»Kelemzol
»Joexy
» ugrás a wikire