Pivot

kraeppy

Benutzer
Beiträge
11
guten morgen,

ich quäle mich mit pivots rum und komme leider nicht weiter -.-

ausgangssituation ist folgende:

zu diversen produkten gibt es viertelstundenpreise. das schema der preistabelle ist in etwa

[produkt_id], [handelstag], [wert1], [wert2], ..., [wert100]. (abhängig von der zeitumstellung hat ein tag zwischen 92 und 100 viertelstundenwerte).

was ich brauche ist folgendes:

[handelstag], [wert], [produktid_1], [produktid_2], ..., [produktid_n]
1.1.2016, 1, p1_wert1, p2_wert1, ..., pn_wert1
...
1.1.2016, 100, p1_wert100, p2_wert100, ..., pn_wert100,
2.1.2016, 1, p1_wert1, p2_wert1, ..., pn_wert1
...
2.1.2016, 100, p1_wert100, p2_wert100, ..., pn_wert100,


ich versuche mich langsam vorzuarbeiten an der query aber komm leider net voran, weil ich partout das aggregieren beim pivot nicht check... abhängig davon eben auch keine vorstellung davon, wie ich die einzelnen spalten mit aggregations-ausdrücken untereinanderbekomme für einen tag.

ich experimentier mit der abfrage rum, die lediglich eine preiskurve von einem produkt zurückgibt:
Code:
select piv.[Energy Meteo Sueloglu Dayahead], piv.trading_day from
    (
        select top 1  pr.product_name, pr.product_id, p.trading_day, p.[val_1], p.[val_2] ,p.[val_3] ,p.[val_4]
        from ZEMDA.dbo.tbl_product pr
        inner join ZEMDA.dbo.tbl_price p on pr.product_id = p.product_id
        where pr.exchange_id = 30000
        and val_1 > 0
    ) src

pivot
(
    avg(val_1)
    for product_name in (
    [Energy Meteo Sueloglu Dayahead]
    )
) piv

order by trading_day

ich nehme jede hilfe dankend an :D

lg
kraeppy
 
Werbung:
guten morgen,

ich quäle mich mit pivots rum und komme leider nicht weiter -.-

ausgangssituation ist folgende:

zu diversen produkten gibt es viertelstundenpreise. das schema der preistabelle ist in etwa

[produkt_id], [handelstag], [wert1], [wert2], ..., [wert100]. (abhängig von der zeitumstellung hat ein tag zwischen 92 und 100 viertelstundenwerte).

was ich brauche ist folgendes:

[handelstag], [wert], [produktid_1], [produktid_2], ..., [produktid_n]
1.1.2016, 1, p1_wert1, p2_wert1, ..., pn_wert1
...
1.1.2016, 100, p1_wert100, p2_wert100, ..., pn_wert100,
2.1.2016, 1, p1_wert1, p2_wert1, ..., pn_wert1
...
2.1.2016, 100, p1_wert100, p2_wert100, ..., pn_wert100,


ich versuche mich langsam vorzuarbeiten an der query aber komm leider net voran, weil ich partout das aggregieren beim pivot nicht check... abhängig davon eben auch keine vorstellung davon, wie ich die einzelnen spalten mit aggregations-ausdrücken untereinanderbekomme für einen tag.

Ich halte schon mal das Design der Ausgangstabelle für FAIL. Datenbanken sind keine Tabellenkalkulationen. Das wird, sollte es Dir gelingen, ein Krampf und bei leicht größeren Datenmengen schnell ein Performance-Monster.
 
Werbung:
Das Problem scheint eher zu sein das du schon eine Pivot-Struktur hast nur eben über Wert und nicht über Produkt ID. Das Design müsstest du jetzt erstmal entfrickeln, z.B. mit UNPIVOT um es dann wieder mit PIVOT zu verarbeiten.
 
Zurück
Oben