Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Pivot

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von kraeppy, 24 Mai 2016.

  1. kraeppy

    kraeppy Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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.
     
  3. ukulele

    ukulele Datenbank-Guru

    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.
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden