Vytiahnutie aktualneho stavu ulohy – MS SQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Vytiahnutie aktualneho stavu ulohy – MS SQL – Fórum – Programujte.comVytiahnutie aktualneho stavu ulohy – MS SQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
distinct
~ Anonymní uživatel
3 příspěvky
20. 3. 2013   #1
-
0
-

Ahojte,

mam databazu a v nej tabulku, v ktorej su teraz podstatne dva slpce. Stlpec Task_Id, ktory identifikuje ulohu a stlpec Tast_Status, ktory hovori o aktualnom stave. Ja by som potreboval z DB vytiahnut aktualny stav pre kazdy task. Problem je, ze pre kazdy task je tam teraz viac stavov, no ja potrebujem z DB len ten posledny. Najskor som to chcel riesit cez DISTINC na Task_ID, co by snad pri spravnom zobrazeni zobralo vzdy posledny vyskyt tasku a jeho stav, lenze potreboval by som DISTINCT len na jeden stlpec (Postgre ma myslim DISTINCT ON, ktory robi to co chcem) a to MS SQL nevie. Mate nejaky napad ako to spravit ? Vdaka.

Nahlásit jako SPAM
IP: 212.89.227.–
Reklama
Reklama
P
~ Anonymní uživatel
193 příspěvků
20. 3. 2013   #2
-
0
-

Jak poznas z tabulky o 2 sloupcich Task_Id a Task_Status, ktery Task_Status je pro dane Task_Id posledni?

Nahlásit jako SPAM
IP: 85.93.116.–
distinct
~ Anonymní uživatel
3 příspěvky
20. 3. 2013   #3
-
0
-

Ako som pisal, tych stlpcov je tam viac. Je tam cas odstartovania tasku, cas zmeny stavu atd atd. Ja som dufal, ze ked budu tie riadky zoradene od posledneho pridaneho zaznamu po prvy a distinct vezme vzdy len jeden zaznam, vezme prave ten posledny ... 

Nahlásit jako SPAM
IP: 212.89.227.–
P
~ Anonymní uživatel
193 příspěvků
20. 3. 2013   #4
-
0
-

Jake jsou tam sloupce vis Ty, ne my, kterych se ptas na radu. My jsme zatim vedeli pouze o tech dvou.

V SQL dotazech nelze spolehat na nejake poradi zaznamu nebo na to, ktery zaznam se vezme.

Pokud budeme vychazet z casu zmeny stavu, tak treba

SELECT t.Task_Id, t.Task_Status

FROM Tabulka AS t

INNER JOIN (

    SELECT Task_Id, MAX(Cas_Zmeny_Stavu) AS Cas_Zmeny_Stavu

    FROM Tabulka

    GROUP BY Task_Id

) AS s ON s.Task_Id = t.Task_Id AND s.Cas_Zmeny_Stavu = t.Cas_Zmeny_Stavu

Nahlásit jako SPAM
IP: 85.93.116.–
distinct
~ Anonymní uživatel
3 příspěvky
20. 3. 2013   #5
-
0
-

Vdaka, funguje to. Ospravedlnujem sa za neuplne info. Musim sa v tom SQL viac sprtat :-/

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

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×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, 1 host

 

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