Announcement

Collapse
No announcement yet.

Pivottabelle und Datum

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Pivottabelle und Datum

    Hallo zusammen,

    ich frage momentan eine Prozesstabelle ab, dies funktioniert soweit ganz gut nur muss ich jetzt Prozesszeiten errechnen.

    Ich habe mir per Pivot-fkt. eine Ergebnistabelle der Form:

    Date | Var1 | Var2 | Flag
    XXX 1.00 2.00 1
    YYY 1.00 2.00 4

    gebaut und befülle diese.
    Meine Prozesszeiten werden durch die Spalte "Flag" charakterisiert, in dieser Spalte stehen nur 2 Werte, einer für den Start einer für das Ende.

    Ich suche nach einem Ergebnis der Form:

    Var1 | Var2 | 1(Start) | 4(Ende) |
    1.00 2.00 XXX YYY


    BOL und MSDN konnten mir leider nicht weiterhelfen, entweder ich scheitere daran, dass der Datetime-Typ nicht verwendet werden kann, ich den Datetime nicht konvertieren möchte.

    Mein letzter Versuch sieht so aus:

    Code:
    SELECT 
    	Bathnumber, [1] as 'rein', [4] as 'raus'
    FROM
    	(
    	SELECT
    		Date,
    		in_out_flag
    	FROM
    		dbo.input
    	) AS SOURCE
    	PIVOT (
    		FOR Date
    		in ([1], [4])
    		) AS PV
    	group by bathnummer;

    Irgendwie schaut des recht simpel aus, ich habe jetzt mit PIVOT-Operator und mit einer selbstgeschriebenen Funktion herumexperimentiert, komme aber keinen Schritt weiter.

  • #2
    Hallo Ninnazu,

    wenn ich das auf die schnelle überfliegt, hast Du da nur einen kleinen Fehler drin
    Das FOR muss sich auf Dein Flag beziehen und Date musst Du als Wert selektieren
    [highlight=SQL]
    PIVOT ( Date
    FOR in_out_flag
    in ([1], [4])
    ) AS PV
    [/highlight]

    Evtl. in MAX(Date) umändert, da aggregiert werden muss; Beispiel zu PIVOT siehe auch
    http://entwickler-forum.de/showthread.php?t=53897
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Danke vielmals!
      So ähnlich sah das bei mir schon einmal aus, nur habe ich ständig eine Fehlermeldung bekommen. Ich habe nun, wie du es beschrieben hast, MAX(Date) eingefügt und es funktioniert bestens.

      Dass hier zwingend aggregiert werden muss, wusste ich leider nicht.

      Comment

      Working...
      X