Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
Delphi 2007 Enterprise
|
Re: SQL Abfrage über Bewegungen
1. Okt 2008, 15:33
Hi,
also hier meine 2 Tables
SQL-Code:
CREATE TABLE [dbo].[Lagerliste](
[Kennummer] [int] IDENTITY(1,1) NOT NULL,
[Datum] [smalldatetime] NULL,
[Lager] [int] NULL,
[Fachnummer] [nvarchar](6) NULL,
[Bestellnummer] [nvarchar](255) NULL,
[Warenbezeichnung] [nvarchar](255) NULL,
[Bestand] [int] NULL,
[Einheit] [nvarchar](255) NULL,
[Meldebestand] [int] NULL,
[Mindestbestand] [int] NULL,
[Bestelltanzeige] [bit] NOT NULL,
[Herstellernummer] [nvarchar](255) NULL,
[Hersteller] [nvarchar](255) NULL,
[Preis] [float] NULL,
[Kreditor] [int] NULL,
[Info] [nvarchar](255) NULL,
[Inventar] [bit] NULL,
[Zaehler] [nvarchar](50) NULL,
[Bemerkung_Zaehler] [nvarchar](50) NULL,
[gezaehlt] [bit] NULL,
[Shuttle_Inventur] [bit] NULL,
[Anleger] [nvarchar](50) NULL,
[Show_Tab] [bit] NULL,
[Ranking] [nvarchar](50) NULL,
[Order_Time] [nvarchar](50) NULL,
[Project] [nvarchar](50) NULL,
[Inventar_number] [nvarchar](50) NULL,
[Gewicht_gramm] [int] NULL
)
SQL-Code:
CREATE TABLE [dbo].[Lagerbewegung](
[Bewegungsnummer] [int] IDENTITY(1,1) NOT NULL,
[Materialkennummer] [int] NULL,
[aktuelles_Datum] [smalldatetime] NULL,
[Technischer_platz] [nvarchar](50) NULL,
[Platznummer] [float] NULL,
[Bewegung] [nvarchar](50) NULL,
[Stueckzahl] [float] NULL,
[Name] [nvarchar](50) NULL,
[Bemerkung] [nvarchar](500) NULL,
[Liste] [bit] NULL)
Dann die eine View wo mir alle Artikel zurückgibt mit Kennummer und Jahr
SQL-Code:
SELECT TOP (100) PERCENT Materialkennummer AS Kennummer, Bewegung, YEAR(aktuelles_Datum) AS Aktuelles_Jahr
FROM dbo.Lagerbewegung
WHERE (Bewegung = N'Abgang')
Hier meine aktuelle Abfrage allerdings bekomme ich da noch doppelte Kennummer zurück.Da bin ich noch dran.
SQL-Code:
SELECT TOP (100) PERCENT a.Kennummer, a.Warenbezeichnung, a.Bestand, a.Einheit, a.Preis, ROUND(a.Preis * a.Bestand, 0) AS PrSt, a.Lager,
a.Fachnummer, a.Datum AS Anlege_Datum, dbo.VW_Lagerbewegung_Year.Aktuelles_Jahr
FROM dbo.Lagerliste AS a INNER JOIN
dbo.VW_Lagerbewegung_Year ON a.Kennummer = dbo.VW_Lagerbewegung_Year.Kennummer
WHERE (NOT EXISTS
(SELECT Kennummer
FROM dbo.VW_Lagerbewegung_Year AS b
WHERE (Kennummer = a.Kennummer) AND (Aktuelles_Jahr IN ('2008', '2007'))))
ORDER BY Anlege_Datum, a.Fachnummer
|