AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Abfrage über Bewegungen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Abfrage über Bewegungen

Ein Thema von renekr · begonnen am 1. Okt 2008 · letzter Beitrag vom 1. Okt 2008
 
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

Re: SQL Abfrage über Bewegungen

  Alt 1. Okt 2008, 18:15
Also die Abfragen erscheinen mir noch wenig effizient zu sein.
Man muss doch bei den Lagerbewegungen anfangen und diese schon mit GROUP BY "eindampfen".
Dieses frühzeitige Reduzieren der Datenmenge spart dem Server viel Zeit und Resourcen (Abfrage 1):
SQL-Code:
SELECT Materialkennummer, COUNT(*) AS AnzahlBeweg
FROM dbo.Lagerbewegung
WHERE Bewegung = N'Abgang'
GROUP BY Materialkennummer
Es gibt jetzt pro Materialkennummer nur einen Datensatz.
Nächster Schritt wäre die Datumseinschränkung (Abfrage 2):
SQL-Code:
SELECT Materialkennummer, COUNT(*) AS AnzahlBeweg
FROM dbo.Lagerbewegung
WHERE Bewegung = N'AbgangAND aktuelles_Datum >= :MinDatum AND aktuelles_Datum <= :MaxDatum)
GROUP BY Materialkennummer
Es ist empfehlenswert, wie oben gezeigt den Zeitbereich über die Parameter :MinDatum und :MaxDatum auszuwählen, anstatt das feste Jahresschema anzuwenden.

Diese Abfrage wird jetzt mit der Lagerliste verjoint (Abfrage 3):
SQL-Code:
SELECT Lagerliste.*, DevTbl.* FROM
Lagerliste INNER JOIN (@@@) DevTbl ON Lagerliste.Kennummer=DevTbl.Materialkennummer
ORDER BY Lagerliste.Kennummer
Der Platzhalter @@@ steht für die Abfrage 2.
Ich habe mit Absicht die Abfrage 2 nicht in die Abfrage 3 einkopiert, damit man besser die Struktur sieht.

Der Unterschied zwischen der Abfrage in Beitrag #5 und meinem Vorschlag ist, dass bei meinem Vorschlag zuerst gruppiert und dann verjoint wird.
Im Beitrag #5 ist das Gruppieren nachgelagert und verursacht damit einige Probleme.
Der Ausdruck MAX(a.Warenbezeichnung) AS Warenbezeichnung ist eigentlich nur aus der Not geboren und macht ansonsten Sinn.
Andreas
  Mit Zitat antworten Zitat
 


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 22:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz