AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Kompliziertes Update Statement
Thema durchsuchen
Ansicht
Themen-Optionen

Kompliziertes Update Statement

Ein Thema von mika · begonnen am 15. Mai 2012 · letzter Beitrag vom 16. Mai 2012
Antwort Antwort
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#1

AW: Kompliziertes Update Statement

  Alt 15. Mai 2012, 11:26
@SirRufo
Ja, ich denke das OR ist da falsch am Platz. Allerdings sollte es, wenn ich es durch ein AND ersetze, deie richtigen Daten filtern

@General
Ich probier das mal aus, ob es unübersichtilich wird ist nicht sooo wichtig Hauptsache es funktioniert

//edit
@omata
das wird glaub ich leider nicht gehen, da die abverkaufte menge der letzten 12 monate, und der istbestand der letzten 13 monate genommen werden soll
:: don't Panic ::

Geändert von mika (15. Mai 2012 um 11:30 Uhr)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Kompliziertes Update Statement

  Alt 15. Mai 2012, 13:05
@omata
das wird glaub ich leider nicht gehen, da die abverkaufte menge der letzten 12 monate, und der istbestand der letzten 13 monate genommen werden soll
Oh, das +1 hatte ich nicht gesehen.

Ok, dann vielleicht so...
SQL-Code:
UPDATE
  Statistik
SET
  LUG =
  (
    SELECT
      SUM(CASE WHEN Monat >= Statistik.Monat+1
            THEN AbverkauftMenge
            ELSE 0
          END) / SUM(IstBestand) * 13
    FROM
      Statistik x
    WHERE Kunde = Statistik.Kunde
      AND Artikel = Statistik.Artikel
      AND Col = Statistik.Col
      AND Jahr >= Statistik.Jahr-1 AND Monat >= Statistik.Monat+1
      AND Jahr <= Statistik.Jahr AND Monat <= Statistik.Monat
  )
  Mit Zitat antworten Zitat
Benutzerbild von mika
mika

Registriert seit: 25. Okt 2002
176 Beiträge
 
Delphi 6 Professional
 
#3

AW: Kompliziertes Update Statement

  Alt 16. Mai 2012, 09:12
So, ich hab das jetzt erstmal so gelöst:

Code:
UPDATE
  Statistik
SET
  LUG =
  (
    SELECT
      SUM(AbverkauftMenge) AS Menge
    FROM
      Statistik a
    WHERE
     a.Kunde = Statistik.Kunde
     AND a.Artikel = Statistik.Artikel
     --AND a.Col = Statistik.Col
      AND ((a.Jahr >= Statistik.Jahr-1 AND a.Monat >= Statistik.Monat+1)
     AND (a.Jahr <= Statistik.Jahr AND a.Monat <= Statistik.Monat))
  )
  / 
  ( 
    SELECT
      IFNULL(SUM(IstBestand),1000000) AS Menge
    FROM
      Statistik b
    WHERE
     b.Kunde = Statistik.Kunde
     AND b.Artikel = Statistik.Artikel
     --AND b.Col = Statistik.Col
      AND ((b.Jahr >= Statistik.Jahr-1 AND b.Monat >= Statistik.Monat)
     AND (b.Jahr <= Statistik.Jahr AND b.Monat <= Statistik.Monat))
  )
  * 13 
WHERE Jahr = 2010
ist noch lange nicht dass was ich wollte, aber es scheint schon der richtige Weg zu sein. Ich werde da sicher noch weiter dran arbeiten (@omata, deinen vorschlag ausprobieren zB) aber da meine EIngangsfragen gelöst sind, bedanke ich mich bei euch für eure Hilfe und markiere dieses Thema als gelöst.

Klasse Forum! Wie immer ^^
:: don't Panic ::
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz