Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Prihlásený: 18.12.19
Príspevky: 198
Témy: 74
Bydlisko: Nitra
Príspevok NapísalOffline : 02.10.2010 16:04

Vie mi niekto poradit ako vybrat posledny vlozeny riadok tabulky? ked pri kazdom vlozeni sa vklada aj cas typu DATETIME.

Kód:
Field   Type   Null   Default   Comments   MIME
id_order_history    int(10)    No            
id_employee    int(10)    No            
id_order    int(10)    No            
id_order_state    int(10)    No            
date_add    datetime   No
Kód:
id_order_history    id_employee    id_order    id_order_state    date_add
1   0   1   1   2010-10-02 00:05:33
2   0   2   3   2010-10-02 00:37:56
3   0   2   9   2010-10-03 00:37:56


jednoducho jedno ID bude mat viacej zaznamov a ja potrebujem len to jedno posledne.


Offline

Užívateľ
Užívateľ
select datetime

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 02.10.2010 16:16

Čo order by nefunguje?
Skús to lepšie popísať, lebo ťažko povedať, či chceš všetky položky s rovnakým ID ako má posledný záznam, alebo len samotný posledný záznam...


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Prihlásený: 18.12.19
Príspevky: 198
Témy: 74
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 02.10.2010 16:33

Dajme tomu ze chcem len tie udaje kde sa rovna id_order_state = 9
Ale len ak je to nejnovsi datum
cize ak bolo taky id_order ktory mal id_order_state = 9
ale ma uz zapisany aj novsi zapis ze najnovsi zapis mu priradil id_order_state = 10;
tak ten uz nechem vybrat


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 02.10.2010 16:53

ak mas 100% istu postupnost "id_order_history" tak
Kód:
select * from table a where id_order_history = (select max(id_order_history) from table b where b.id_order_state = $kriterium)

ak nemas 100% istotu tak
Kód:
select * from table a where b.id_order_state = $kriterium and date_add = (select max(date_add) from table b where b.id_order_state = $kriterium)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Prihlásený: 18.12.19
Príspevky: 198
Témy: 74
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 02.10.2010 18:41

toto mi vyberie vzdy len jeden zaznam.


predstavme si ze je 100 objednavok.
niektore uz mali status ktory hladam a niktore ho maju. ten status je $kriterium
a ja teraz potrebujem vybrat vsetky cisla objednavok ktore ten status maju preve teraz., a nie tie co ho mali

// automaticky pridané po 39 minútach 1 hodine od posledného príspevku

vyslo mi zatial nieco taketo, ale to nefugnuje dobre., vyberie mi vzdy len jeden riadok. najblizsii status s cislom 9 od id_order_history..
Kód:
 SELECT id_order, id_order_history, id_order_state ,date_add
   FROM xxx_order_history a 
   WHERE a.id_order_state like '9'
   HAVING max(id_order_history)




===========================

v tabulke mam 5 stlpcov

Kód:
id_order_history    id_employee    id_order    id_order_state    date_add

Taketo udaje
Kód:
           1   0   1   1   2010-10-02 00:05:33
            2   0   2   3   2010-10-02 00:37:56
            3   0   2   9   2010-10-02 00:37:56
            4   1   2   11   2010-10-02 16:33:58
            5   1   2   4   2010-10-02 16:34:01
            6   1   2   9   2010-10-02 16:34:05
            7   1   2   9   2010-10-02 16:34:07
            8   0   3   3   2010-10-02 16:43:53
            9   0   3   9   2010-10-02 16:43:54
            10   1   2   4   2010-10-02 16:45:01
            11   1   3   4   2010-10-02 16:45:07
            12   1   1   9   2010-10-02 17:04:42
            13   1   2   9   2010-10-02 17:04:52
            14   1   2   6   2010-10-02 17:33:56
            15   1   2   9   2010-10-02 17:34:04
            16   1   2   10   2010-10-02 17:35:13
            17   1   1   11   2010-10-02 17:35:18
            18   1   2   9   2010-10-02 18:21:39
            19   1   2   1   2010-10-02 18:36:15
            20   1   1   9   2010-10-02 18:37:05


A potrebujem taky select ktory mi s tejto tabulky bude vytahovat tie id_order ktore budu mat id_order_state == '9'
ale iba pokial maju najnovsi datum aktualizacie resp. pokial maju navysie id_order_history svojej objednavky id_order


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 02.10.2010 21:06

tak potom
Kód:
 select * from table a where id_order_history in (select max(id_order_history) from table b where b.id_order_state = $kriterium group by id_order)


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Prihlásený: 18.12.19
Príspevky: 198
Témy: 74
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 02.10.2010 22:23

nie stale to nieje dobre,. pretoze mi vypise vsetky objednavky kde sa nachadzal predtim status 9. a vypise ich posledny nalez.

ale s tohto stavu tabulky co som sme dal by mal vypisat len jeden ten posledny id_order_history:20, id_order:1 id_order_state:9, date_add:2010-10-02 18:37:05


Poradili mi tento zapis, lenze v nom vypisuje chybu
Kód:
SELECT a.id_order
   FROM xxx_order_history a 
   WHERE a.id_order_state = 9
   AND id_order_history = max(SELECT b.id_order_history
                        FROM xxx_order_history b
                        WHERE b.id_order = a.id_order) 


Offline

Užívateľ
Užívateľ
select datetime

Registrovaný: 05.09.09
Príspevky: 1141
Témy: 127
Bydlisko: Lehota pod ...
Príspevok NapísalOffline : 02.10.2010 23:52

Jedna vec mi z toho nieje jasná:
Chceš najnovšie položky s rovnakým id_order a to pre všetky id_order-y ktoré majú daný status(tj. pre každý jeden druh id_order), alebo najnovšie z celej tabuľky(to jest iba jeden druh id_order)??


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2
Príspevok NapísalOffline : 03.10.2010 0:03

si horsi ako moja manzelka, ani ta nevie co vlastne chce :) najprv sa stazujes ze ti moj select vrati iba jeden zaznam a potom tu pises ze to ma vratit iba jeden zaznam


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Prihlásený: 18.12.19
Príspevky: 198
Témy: 74
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 03.10.2010 0:04

Chcem kazde id_order ktore maju aktualne status id_order_state == 9 s najvisim id_order_history alebo najnovsim datumom.
Nechcem tie id_order ktore maju iny status id_order_state s novsim datumom alebo poradovim cislom id_order_history.

to znamena ze ak mam v db 4 objednavky
ktore maju uz nejake statusi, a aktualne ma iba objednavka cislo 4 nastavensy status 9(ten ktory hladam) tak mi ten select ma vyplut len tu jednu polozku.


je to ako kebyma objednavka status ze 'priprava prebieha'
a nasledne jej dam status 'dorucene-ukoncene'
aby ked dam hladat objednavky v stave 'priprava prebieha'
nenaslo uz dorucene obejdnavky


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 03.10.10
Prihlásený: 01.12.10
Príspevky: 4
Témy: 0
Bydlisko: BA
Príspevok NapísalOffline : 03.10.2010 2:06

v pripade ze jediny mozny nasledujuci status po stave 9 je stav 10 tak to riesim takymto nepeknym selectom:

Kód:
select * from test_a where id_order in (
select id_order from test_a where id_order_state = 9
minus
select id_order from test_a where id_order_state = 10
)and id_order_state = 9


Osobne keby som riesil nejaky takyto system tak asi spravim dve tabulky:
v jednej by mala kazda objednavka iba jeden riadok a to aktualny stav, ak by sa tento status menil tak by sa riadok presunul do tabulky historia a v prvej tabulke by bol novy zaznam(updatnuty stary).

Id_order_history mi pride ako nadbytocny kedze order objednavky by mal urcovat datum, teda ak sa cez tento column neprepajas na inu tabulku.

Ako sa tak nad tym zamyslam tak som ti asi moc nepomohol kedze je dost mozne ze status objednavky sa moze zmenit lubovolne, ale uz ma nic nenapada.


Update:
Tak nakoniec sa to da spravit krajsim selectom len jemna uprava toho co uz coldak sem dal:
Kód:
select * from test_a where id_order_history in (
select max(id_order_history) from test_a group by id_order
) and id_order_state = 9


a tym padom odvolam ze ten id_order_history je nadbytocny :D (aj ked ako unikatny identifikator riadku by som dal datum a id_order, nejaky som nerozhodny dobru noc :) )


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 21.10.08
Prihlásený: 18.12.19
Príspevky: 198
Témy: 74
Bydlisko: Nitra
Príspevok Napísal autor témyOffline : 03.10.2010 11:06

nádhera. vyskusal som to a funguje to zatial :D velmi ti dik.
som si s tim trapil hlavicku, a asi viac ludi co mi chceli pomoct.
fakt dik




Funkcny dotaz:
Kód:
select * from test_a where id_order_history in (
select max(id_order_history) from test_a group by id_order
) and id_order_state = 9


Odpovedať na tému [ Príspevkov: 12 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. typ DateTime / Timestamp

v Databázy

4

734

27.10.2007 18:20

tatysp Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. datetime column a triedenie, MySql

v Databázy

5

370

25.04.2013 12:52

baumax Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. formular: presun <option> zo <select> do <select>

v JavaScript, VBScript, Ajax

2

752

28.09.2009 15:27

tomast7 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. select

v Databázy

8

503

16.03.2012 14:09

zdeniatqo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SELECT

v Databázy

6

1402

31.08.2006 13:50

tRizzO Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Select

v HTML, XHTML, XML, CSS

3

410

13.09.2012 21:49

1daemon1 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. select

v PHP, ASP

7

640

02.05.2008 13:53

mondzo Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Prepojeny select

v Databázy

2

590

18.05.2009 18:05

p360t Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Multi select

v Databázy

1

294

30.05.2013 11:12

stenley Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Select option

v HTML, XHTML, XML, CSS

5

579

06.06.2017 10:12

hatto13 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Select script

v JavaScript, VBScript, Ajax

14

625

06.08.2012 23:51

Vojko Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. zly select

v Databázy

2

626

07.07.2012 19:59

Ďuri Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. select nefunkcny

v Databázy

5

562

07.06.2010 14:08

MisakNo10 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Komplikovany select

v Databázy

2

516

23.03.2012 16:52

general667 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Stromový select

v PHP, ASP

5

411

07.05.2009 19:08

Tominator Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. SELECT OPTION

v HTML, XHTML, XML, CSS

3

551

06.03.2009 14:34

Ďuri Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra