» Poradna » Programy

MS SQL - Vytvoření náhledu ze dvou tabulek

 |   |  Microsoft Windows 10 Chrome 79.0.3945.130

Dobrý den,potřeboval bych poradit s vytvořením náhledu ze dvou tabulek. Problém je v tom, že nevím, jak vytvořit z hodnot v jednom sloupci názvy sloupců pro výslednou tabulku. Příklad je srozumitelně popsán na následujícím obrázku:[url=https://www.imageupload.net/image/JzU7z][/url]https://www.imageupload.net/upload-image/2020/02/13/S... Cílem je vytvořit tabulku nebo náhled ve formátu, který je na obrázku (Output Table). Ale musí to být dynamicky, protože v Input Table 1 může být stovky položek. Hodnoty do Input Table 2 se ukládájí v jeden čas naráz pro všechny položky v Input Table 1. Cílem je tak vytvářet statistiky dle denních, měsičních... reportůDěkuji za případnou pomoc

Mohlo by vás také zajímat

Odpovědi na otázku

 | Microsoft Windows 10 Chrome 80.0.3987.100

Tak to jsem zvědav zda ti někdo poradí. Já jsem kdysi něco podobného dělal a "šlo to". Trik byl v tom že bylo potřeba joinem spojit 3 tabulky "TagValues" přes společný klíč "datetime". Tím dostaneš do jednoho řádku všechny 3 čítače. Když máš čítačů 5, tak tu tabulku musíš spojit 5x do sebe.Jenže tohle funguje pro statický počet čítačů (sloupců), netuším jak by to mohlo fungovat pro dynamický počet čítačů.

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Linux Firefox 72.0

Nevím sice, jak se tohle dělá zrovna v MS SQL, ale obecně se tomu říká "pivot table" nebo "pivot query". Snad se od toho dokážeš odrazit, něco je třeba tady https://stackoverflow.com/questions/10404348/sql-se...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 | Microsoft Windows 10 Chrome 79.0.3945.130

Česky se tomu říká "křížový dotaz" a takle se to dělá v MS Access jako SQL dotaz:https://support.office.com/cs-cz/article/p%C5%99ehle...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 79.0.3945.130

Díky všem za reakci, trochu jste mě pošťouchli. Jdu studovat...

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 7 Firefox 72.0

programujte.com

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Firefox 72.0

select DateTime,sum(case when TagID=1 then TagValue else NULL end) as CounterA,sum(case when TagID=2 then TagValue else NULL end) as CounterB,sum(case when TagID=3 then TagValue else NULL end) as CounterCfrom Table2group by DateTime order by DateTime

Souhlasím  |  Nesouhlasím  |  Odpovědět
 |   |  Microsoft Windows 10 Chrome 79.0.3945.130

Tak už se to zadařilo, tady je dobrej návod:https://www.sqlservertutorial.net/sql-server-basics/sql-ser...

Souhlasím  |  Nesouhlasím  |  Odpovědět