Einzelnen Beitrag anzeigen

renekr

Registriert seit: 27. Feb 2005
Ort: Karlsbad
534 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: SQL Abfrage über Bewegungen

  Alt 1. Okt 2008, 14: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
  Mit Zitat antworten Zitat