[Gelöst] Filter auf SQL View Tabelle

8. April 2011 09:09

Hallo Zusammen,

ich hoffe, es gibt jemanden, der mir folgende Kuriosität erklären kann...

Ich habe auf die Tabelle Artikelposten (Item Ledger Entry) ein SQL View erstellt, damit ich die noch aktuellen Chargen mit Menge berechnen kann.

Code:
SELECT DISTINCT
                      TOP (100) PERCENT [Item No_], [Variant Code], [Lot No_], [Open], SUM([Remaining Number]) AS Number, SUM([Remaining Quantity]) AS Quantity
FROM         dbo.[Nirotec_Eingabe$Item Ledger Entry]
WHERE     ([Open] = 1)
GROUP BY [Item No_], [Variant Code], [Lot No_], [Open]
ORDER BY [Item No_]


Dann habe ich die dazugehörige Navision Tabelle erstellt.
Die Daten werden auch richtig übernommen.

Wenn ich nun in der Tabelle auf eine Artikel Nr. filter, bekomme ich nur den ersten oder letzten Datensatz dieses Artikels angezeigt.
Filter ich auf die - herausgesuchten- Chargen, werden mir die "richtigen" Datensätze angezeigt.

Gibt es Fitlereinschränkungen bei Tabellen, die auf ein SQL View verweisen.

Vielen Dank für Eure Hilfe.

Gruß
Marcel
Zuletzt geändert von titanius am 11. April 2011 09:31, insgesamt 1-mal geändert.

Re: Filter auf SQL View Tabelle

8. April 2011 09:10

hi,

hast du in NAV in der View-Tabelle die Schlüssel richtig gesetzt?

Gruß
jan

Re: Filter auf SQL View Tabelle

8. April 2011 09:21

Hallo Jan,

die Tabell hat nur einen Schlüssel Item No.
Beim Versuch einen anderen Schlüssel zu setzen, bekomme ich folgende Fehlermeldung:
]---------------------------
Microsoft Dynamics NAV
---------------------------
Der Schlüssel existiert bereits.

Hinweis: Die Felder des Primärschlüssels werden an alle Sekundärschlüssel angehängt, damit sie eindeutig werden.

Tabelle: ***
Schlüsselfelder: Item No.,Variant Code,Lot No.

---------------------------
OK
---------------------------

Re: Filter auf SQL View Tabelle

8. April 2011 10:34

Mach mal bitte folgendes:

Schreib nen Report, der nach dem Primärschlüssel sortiert alles ausgibt, und vergleich dies mit einem select * in SSMS.

Sind es die gleichen Daten, insb. gleiche Anzahl Datensätze?

Re: Filter auf SQL View Tabelle

8. April 2011 11:27

Hallo Jan,

es sind nicht die gleiche Anzahl von Datensätzen !!!

SSMS zeigt mir: Es sind 12117 Zeilen betroffen

und per Report komme ich nur auf 9200 Datensätze.

Ich weiß leider nicht, wo ich jetzt anzusetzen habe ...

Re: Filter auf SQL View Tabelle

10. April 2011 16:05

Hi!

Also wenn das die Gruppierung ist ...
Code:
GROUP BY [Item No_], [Variant Code], [Lot No_], [Open]


... dann muss der Primärschlüssel (= erster Schlüssel der Tabelle) der NAV Tabelle auch aus diesen Feldern bestehen ...
Code:
"Item No.", "Variant Code", "Lot No.", "Open"


... da ja nur so die Eindeutigkeit gewährleistet ist!

Und: ich weiß ja nicht genau wozu die Sicht benötigt wird, aber ggf. kannst Du versuchen die auch zu Indizieren; etwa:

Code:
CREATE VIEW dbo.[Nirotec_Eingabe$Item Lot Nos_]
WITH SCHEMABINDING
AS
   SELECT
   [Item No_], [Variant Code], [Lot No_], [Open],
   COUNT_BIG(*) as "Cnt",
   SUM([Remaining Number]) AS Number,
   SUM([Remaining Quantity]) AS Quantity
   FROM   dbo.[Nirotec_Eingabe$Item Ledger Entry]
   WHERE ([Open] = 1)
   GROUP BY [Item No_], [Variant Code], [Lot No_], [Open]
GO

CREATE UNIQUE CLUSTERED INDEX [Nirotec_Eingabe$Item Lot Nos_$0] ON dbo.[Nirotec_Eingabe$Item Lot Nos_]
([Item No_], [Variant Code], [Lot No_], [Open])
GO

Dann sollte das Teil auch etwas "sportlicher" funktionieren :wink:

Re: Filter auf SQL View Tabelle

11. April 2011 09:31

Hallo Jörg,

vielen vielen Dank für diese Vorlage.

Es hat jetzt funktioniert und läuft mit sehr guter Geschwindigkeit.

Gruß
Marcel