Announcement

Collapse
No announcement yet.

Berechnung unter SQL2005 Anfängerfrage

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

  • Berechnung unter SQL2005 Anfängerfrage

    Hallo Forum,

    Ich bin Neuling was MS SQL anbelangt, und habe folgendes Anliegen.

    In einer Tabelle erfasse ich Lagerbewegungen zu Artikeln mit Chargenummer,
    Bewegungsart 1 = Wareneingang
    Bewegungsart -1 = Warenausgang
    Nun möchte ich mir den Gesamtbestand zu einer Chargennummer berechnen lassen,
    also Chargennummer, Wareneingang minus Warenausgang = Gesamtbestand.

    z.B.
    Artikel | Charge | Menge | Bewegungsart|
    XY | 123 | 1000 | 1
    XY | 123 | 100 | -1

    Der Gesamtbestand sollte nun 900 sein.

    Wie kann ich in SQL2005 ( arbeite mit dem SQL Server Management Studio) so etwas berechnen lassen?

    Besten Dank im Voraus
    Birgit Kranz

  • #2
    Hallo Birgit,

    Du kannst Die Aggreationsfunktion SUM nutzen, um die Gesamtmenge je Artikel/Charge zu ermittlen.
    Dazu musst Du eben nur auf Artikel und Charge gruppieren.
    Über eine Where Klausel könntest Du die Daten noch weiter einschränken, z.B. nur die Lagerbewegungen bis zu einem bestimmten Zeitpunkt.

    Die Bewegungsart nimmst Du als Faktor für die effektive Menge noch mit hinzu:
    [highlight=SQL]
    SELECT Artikel
    ,Charge
    ,SUM(Menge * Bewegungsart) AS Bestand
    FROM Lagerbewegungen
    GROUP BY Artikel
    ,Charge
    [/highlight]
    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
      Hallo Helper,

      wie gesagt ich bin Neuling was MS SQL2005 angeht, in Access würde ich das mit einer Abfrage erledigen. Im SQL2005 Management Studio nehme ich an muss ich heirfür einen Views erstellen oder?

      Der Code ist soweit verständlich für mich.
      Besten Dank
      Gruß Birgit

      Comment


      • #4
        Das kannst Du im SQL Server ebenfalls mit einer Abfrage = engl. View (= Sicht) machen.

        Es gibt in SSMS ebenfalls einen Abfrage-Designer: Rechte-Maus auf "Sichten" => "Neue Sicht".
        Schnelller geht es im Query Editor mit
        [highlight=SQL]
        CREATE VIEW dbo.MeineAbfrage
        AS
        SELECT Artikel
        ,Charge
        ,SUM(Menge * Bewegungsart) AS Bestand
        FROM Lagerbewegungen
        GROUP BY Artikel
        ,Charge
        [/highlight]
        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


        • #5
          Super, besten Dank es funktioniert...

          Gruß
          birgit

          Comment

          Working...
          X