Kumulierte Summe effizient gestalten

loijoc08

Neuer Benutzer
Beiträge
1
Hey Leute!

Da ich leider keine Lösung zu meinem Problem gefunden hab, versuch ich es hier mal.
Also ich hab ein Selectstatement und darin nochmal ein Select, welches mir für jedes Produkt eine kumulierte Summe berechnet. Leider dauert das auf alle Datensätze bezogen über 20 Sekunden. Ich hoffe, dass von euch jemand weiß wie man das verbessern kann.
Hier mein Statement:

Code:
SELECT ISNULL(-SUM(INVENTTRANS.QTY), 0)
                FROM SALESLINE
                INNER JOIN INVENTTRANSORIGINSALESLINE ON SALESLINE.INVENTTRANSID = INVENTTRANSORIGINSALESLINE.SALESLINEINVENTTRANSID
                                                                        AND SALESLINE.DATAAREAID = INVENTTRANSORIGINSALESLINE.SALESLINEDATAAREAID
                                                                        AND SALESLINE.PARTITION = INVENTTRANSORIGINSALESLINE.PARTITION
                INNER JOIN INVENTTRANSORIGIN ON INVENTTRANSORIGIN.RECID = INVENTTRANSORIGINSALESLINE.INVENTTRANSORIGIN
                                                                AND INVENTTRANSORIGIN.PARTITION = INVENTTRANSORIGINSALESLINE.PARTITION
                INNER JOIN INVENTTRANS ON INVENTTRANS.INVENTTRANSORIGIN = INVENTTRANSORIGIN.RECID
                                                        AND INVENTTRANSORIGIN.PARTITION = INVENTTRANS.PARTITION
                WHERE SALESLINE.ITEMID = LGDSALESDELIVERYPLANVIEW.ITEMID
                AND SALESLINE.DATAAREAID = LGDSALESDELIVERYPLANVIEW.DATAAREAID
                AND SALESLINE.PARTITION = LGDSALESDELIVERYPLANVIEW.PARTITION
                AND REMAINSALESPHYSICAL > 0
                --AND CONCAT(DATEPART(year, SALESLINE.SHIPPINGDATECONFIRMED), '-', FORMAT(DATEPART(isoww, SALESLINE.SHIPPINGDATECONFIRMED), '00')) <= CONCAT(DATEPART(year, LGDSALESDELIVERYPLANVIEW.SHIPPINGDATECONFIRMED), '-', FORMAT(DATEPART(isoww, LGDSALESDELIVERYPLANVIEW.SHIPPINGDATECONFIRMED), '00'))
                AND ((CAST(SALESLINE.SHIPPINGDATECONFIRMED as date) < CAST(LGDSALESDELIVERYPLANVIEW.SHIPPINGDATECONFIRMED as date))
                     OR (CAST(SALESLINE.SHIPPINGDATECONFIRMED as date) = CAST(LGDSALESDELIVERYPLANVIEW.SHIPPINGDATECONFIRMED as date) AND SALESLINE.RECID <= LGDSALESDELIVERYPLANVIEW.SALESLINERECID))
                AND DATEPART(YEAR, SALESLINE.SHIPPINGDATECONFIRMED) > 2000
                AND NOT SALESID LIKE 'SF%'
                AND INVENTTRANS.STATUSISSUE > 4
 
Werbung:
versuche Dein Problem auf ein vereinfachtes Datenmodell runterzubrechen und da zu lösen. Wenn das nicht klappt, frage hier. Vermutlich bin ich nicht der einzige hier, der wenig bis keine Lust hat, aus Deinem SELECT die Tabellenstrukturen reverse zu ergründen.
 
Zurück
Oben