Vďaka za názor, ale príkaz
SELECT xyz FROM master WHERE exists (SELECT 1 FROM detail WHERE
detail.master_id = master.id AND
detail.sloupce <> konec)
vyberie všetky záznamy Master, pretože ku každému existuje nejaký
detail, ktorý hovorí, že oprava nie je ukončená - prvý detail. Mňa
zaujíma atribút ukončenie len na poslednom detaile.
Rastislav "Bedo" Siekel
Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail :
<sie...@prosoft.sk>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20
On 27. 6. 2013 18:44, Petr Franta wrote:
Myslím si, že by to mělo jít vyřešit pomocí podmínky
"exists" nebo "not exists":
SELECT xyz FROM master WHERE exists (SELECT 1 FROM detail WHERE
detail.master_id = master.id AND detail.sloupce
<> konec)
Nebo něco podobného.
Petr
2013/6/27 Rastislav Siekel <sie...@prosoft.sk>
Možno som to nenapísal úplne jasne - skúsim inak
Mám záznamy o oprave - hlavičky, a ku každej môže byť 1 -
N detailov (priebeh opravy, na poslednej je aj prípadne
ukončenie).
Vytváram SELECT pre zoznam opráv, ktoré ešte nemajú
koniec, t.j. s podmienkou, či posledný detail ešte nemá
zadaný koniec (tie predošlé ho určite nemajú zadaný, takže
obyčajný JOIN by mi vybral všetky opravy, lebo ku každému
master existuje určite aspoň jeden detail, ktorý vyhovuje
podmienke).
posledný detail zistím v SQL tak ako som uviedol nižšie.
Rastislav "Bedo" Siekel
P.S.
>From detail d where d.master=:master order by
d.order
Tento príkaz vypíše pre 1 master všetky detaily, čo určite
nie je to, čo hľadám.
Ing.
Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01 Žilina, Slovakia
E-mail :
<sie...@prosoft.sk>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20
On 27. 6. 2013 16:11, Martin Beránek
wrote:
Není moc jasné zadání, ale hql
From detail d where d.master=:master order by
d.order
Podle mě dělá co požadujete
Martin
Dne 27.6.2013 15:36
"Rastislav Siekel" < sie...@prosoft.sk>
napsal(a):
Otočiť to na vyhľadávanie "detail JOIN
master" by v tomto prípade nešlo. Výsledok má
byť zoznam mastrov (filtrovaný na ďalšie
podmienky) s tým, že sú zadané podmienky aj na
posledný detail.
Principiálne hľadám, či je možné v Hibernate
spraviť SELECT * FROM( SELECT...)
Rastislav "Bedo" Siekel
Ing. Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01
Žilina, Slovakia
E-mail :
<sie...@prosoft.sk>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20
On 27. 6. 2013 15:11, ŠVARC Jiří wrote:
Nevím
jestli jsem dobře porozuměl, ale nešlo
by to realizovat vyhledáním v seznamu
detailů s kritériem odkazu na mastera,
nastavením řazení a
query.setMaxResults(1)?
Zdravím
vospolok,
chcel by som sa spýtať, či niekto neriešil
nasledujúci problém:
V Oracle mám tabuľky master a detail. Mám
master a chcem k nemu nájsť posledný detail,
čo spravím v SQL takto:
... AND detail_id =
(
SELECT * FROM
(
SELECT detail_id
FROM detail
ORDER BY detail_time DESC
)
WHERE rownum = 1
)
...
Tu som narazil na problém, že Hibernate
pomocou Criteria API asi nevie spraviť
"SELECT FROM (...) WHERE ...".
Aj DetachedCriteria, aj Criteria si
vyžadujú Entitu (DTO), nad ktorou
pripravia SQL príkaz. Je nejaká možnosť
ako toto obísť?
Vďaka,
Rastislav "Bedo" Siekel
Ing.
Rastislav Siekel
Prosoft s.r.o., Kuzmányho 8, 010 01
Žilina, Slovakia
E-mail : <sie...@prosoft.sk>
Tel : 041/562 54 91
Fax : 041/562 54 97
Mobil : 0905 34 00 20
|