Výběr přes dva sloupce tabulky - nejnovější transakce – MS SQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Výběr přes dva sloupce tabulky - nejnovější transakce – MS SQL – Fórum – Programujte.comVýběr přes dva sloupce tabulky - nejnovější transakce – MS SQL – Fórum – Programujte.com

 
Hledat
Vybavení pro Laser Game
Spuštěn Filmový magazín
Laser Game Brno
Laser Game Ostrava

Václav
~ Anonymní uživatel
31 příspěvků
22. 6. 2020   #1
-
0
-

Dobrý den,

Mám dotaz jakým způsobem mám dosáhnout, aby se mi zobrazil požadovaný výsledek, který má od daného jobu zobrazit od operací 10,20,30 nejnovější transakce(CreateDate)

Dotaz:

Připojen obrázek.


A požadovaný výsledek:

Připojen obrázek.

Nahlásit jako SPAM
IP: 77.95.193.–
Kit+14
Guru
22. 6. 2020   #2
-
0
-

#1 Václav
Co je na těch obrázcích?

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Vena840
Newbie
22. 6. 2020   #3
-
0
-

#2 Kit
Na prvním obrázku je 25 řádků výsledku dotazu, který obsahuje všechny transakce.

Druhý obrázek je požaovaný výsledek o třech řádcích, který potřebuji docílit nějakým dotazem na který se ptám.

Nahlásit jako SPAM
IP: 77.95.193.–
Kit+14
Guru
22. 6. 2020   #4
-
0
-

#3 Vena84
Aha. Co je na těch řádcích napsáno?

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Vena840
Newbie
22. 6. 2020   #5
-
0
-

Na řádcích je job(označuje výrobní příkaz), oper_num(označuje číslo operace),trans_type(označení transakce, createdate(čas zadání transakce)

Jinak ten dotaz jsem psal já jako neregistrovaný a nyní jsem již po registraci po nickem Vena84.

Nahlásit jako SPAM
IP: 77.95.193.–
Kit+14
Guru
22. 6. 2020   #6
-
0
-

#5 Vena84
Můžu si nějak spustit ten SQL dotaz u sebe?

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Vena840
Newbie
22. 6. 2020   #7
-
0
-

 #6 Kit
Je to v naší firemní databázi, takže asi to nepůjde. Nebo aspoň nevím o žádném způsobu.

Nahlásit jako SPAM
IP: 77.95.193.–
Vena840
Newbie
22. 6. 2020   #8
-
0
-

#6 Kit
Můžete mi aspoň napovědět přes jaký dotaz se to má dělat?

Jestli něco jako Apply nebo poddotaz ... ?

Nahlásit jako SPAM
IP: 77.95.193.–
Kit+14
Guru
22. 6. 2020   #9
-
0
-

#8 Vena84
Když nevidím žádný text, tak asi těžko mohu poradit.

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Vena840
Newbie
22. 6. 2020   #10
-
0
-

Nevím jak více Vám to popsat zde je přepis dotazu:

select job,oper_num,trans_type,CreateDate
from jobtran_mst
where job='20VP000012' and trans_type='M'
order by oper_num,trans_num

Nahlásit jako SPAM
IP: 77.95.193.–
Kit+14
Guru
22. 6. 2020   #11
-
0
-

#10 Vena84
Super, už vidím SQL dotaz. Zkusil bych tohle:

select job,oper_num,trans_type,max(CreateDate)
from jobtran_mst
where job='20VP000012' and trans_type='M'
order by oper_num,trans_num, CreateDate desc
group by oper_num,trans_num
Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Vena840
Newbie
22. 6. 2020   #12
-
0
-

#11 Kit
Výsledek jsou zase všechny řádky(25 záznamů)

Vy nevidíte obrázky, které jsem tam přidal?

 

Nahlásit jako SPAM
IP: 77.95.193.–
Kit+14
Guru
22. 6. 2020   #13
-
0
-

#12 Vena84
Obrázky nevidím. Měl bych je vidět?

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Vena840
Newbie
22. 6. 2020   #14
-
0
-

Myslel jsem obrázky už o toho zadání od Václava, protože jste dotaz viděl až jsem ho napsal znovu :-)

Nahlásit jako SPAM
IP: 77.95.193.–
Vena840
Newbie
22. 6. 2020   #15
-
0
-
Nahlásit jako SPAM
IP: 77.95.193.–
Kit+14
Guru
22. 6. 2020   #16
-
0
-

#15 Vena84
Jakou tabulku?

Nahlásit jako SPAM
IP: 213.175.43.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Vena84
~ Anonymní uživatel
12 příspěvků
22. 6. 2020   #17
-
0
-

#16 Kit
Která je přidaná do mého textu v odpovědi?

Nahlásit jako SPAM
IP: 77.95.193.–
MilanL+1
Expert
22. 6. 2020   #18
-
0
-

#17 Vena84 

zkus to takhle mělo by to fungovat pokud se tam neudělá chyba:

select job,oper_num,trans_type,CreateDate
from jobtran_mst jb
inneŕ join
  (select job,oper_num,trans_type,max(CreateDate) as date
     from jobtran_mst
     group by oper_num,trans_num, trans_type     ) mx 
   on jb.job=mx.job and jb.oper_num=mx.oper_num and 
   jb.trans_type=mx.trans_type and jb.CreateDate=mx.date

where job='20VP000012' and trans_type='M'
Nahlásit jako SPAM
IP: 185.112.167.–
Vena840
Newbie
23. 6. 2020   #19
-
0
-

#18 MilanL
Milane vypsalo mi to opět 25 řádků. Nevím jestli jsi ty nebo i ostatní pochopil správně zadání, ale potřeboval jsem výpis nejnovější transakce od op.10,20 a 30. Tedy 3 řádky

Nakonec jsem si pomohl přes row_number, což vedlo k požadovanému výsledku:

select *
from
(select job,oper_num,createdate, ROW_NUMBER() Over(partition by oper_num,job order by createdate DESC) as RN
from jobtran_mst
where job='20VP000012' and trans_type='M') as p
where p.RN=1

Nahlásit jako SPAM
IP: 77.95.193.–
Seth
~ Anonymní uživatel
4 příspěvky
23. 6. 2020   #20
-
0
-

#19 Vena84
zkus toto

SELECT job, oper_num, trans_type, createdate FROM jobtran_mst AS T1 
WHERE createdate = (SELECT MAX(createdate) FROM jobtran_mst AS T2 WHERE T1.job = T2.job and T1.oper_num = T2.oper_num)
AND job='20VP000012' AND trans_type='M'
ORDER BY job, oper_num
Nahlásit jako SPAM
IP: 37.44.18.–
Vena840
Newbie
23. 6. 2020   #21
-
0
-

#20 Seth
Nevrátilo to ani jeden řádek

Nahlásit jako SPAM
IP: 77.95.193.–
MilanL+1
Expert
23. 6. 2020   #22
-
0
-

#19 Vena84
no možná tam měl být jen normální join místo inner joinu

Nahlásit jako SPAM
IP: 185.112.167.–
Vena840
Newbie
23. 6. 2020   #23
-
0
-

Nevím, řešení už se našlo.

Všem, kdo se zapojil aktivně či pasivně, děkuji za ochotu a strávený čas.

Přeji všem hezký den :-)

Nahlásit jako SPAM
IP: 77.95.193.–
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý