Freelance Project Requests info@CodeDocu.de Software Development in C# WPF Asp.Net Core Vba Excel Word SQL-Server EF Linq, UWP Net
#

Ich habe eine Abfrage, die mir 3 gleiche Ergebnisse ausgibt. Ich möchte aber nur einen Datensatz haben.




Die Ursache liegt meistens bei Datensätzen darin, dass doch ein kleines Detail verschieden ist wie zum Beispiel eine Identifikationsnummer oder ein Datum
In dem obigen Fall ist der Datensatz 3 x Mal gespeichert worden mit verschiedenen Daten.


Unter Access kann man relativ einfach eine Zusammenfassung zu einem einzigen, eindeutigen Datensatz erreichen
Hierzu klickt man in der Abfrage auf eine leere Stelle mit der rechten Maustaste und kommt dann auf das Eigenschaftenblatt der Abfrage.
Dort kann man die Eigenschaft: Keine Duplikate von Nein auf Ja umstellen



Wenn man dann auf die Datenblatt-Anzeige wechselt


Erscheinen zunächst noch 3 Datensätze, aber: nur, wenn diese sich auch unterscheiden!


Wenn man jetzt in der Abfrage die interne Nummerierung ausschaltet, indem man das Klickfeld ausschaltet,
dann werden nur noch die AusgabeDaten-Sätze (hier IDRecordset) ausgegeben.


Und da diese immer 3 mal gleich sind, wird nur noch ein Datensatz und zwar OHNE DUPLIKATE ausgegeben


Technisch gesehen:


Wenn man in Access auf die SQL-Ansicht wechselt findet man den eigentlichen Hintergrund der Verbesserung



In der SQL Abfrage als hinterlegter SQL-Text, wird folgend zum SELECT Begriff das Wort DISTINCT dazugeführt.
Das Wort DISTINCT führt dazu, dass der SQL Server nur eindeutige Datensätze OHNE Duplikate ausgibt.
Das gleiche passiert auch bei der Unions-Abfrage, wo auch die doppelten Datensätze zusammengeführt werden.

SELECT DISTINCT dbo_tblSYS_Word_References_1.IDRecordset
FROM (dbo_tblSYS_Words AS dbo_tblSYS_Words_1 INNER JOIN dbo_tblSYS_Word_References ON dbo_tblSYS_Words_1.IDWord = dbo_tblSYS_Word_References.IDWord) INNER JOIN dbo_tblSYS_Word_References AS dbo_tblSYS_Word_References_1 ON dbo_tblSYS_Word_References.IDRecordset = dbo_tblSYS_Word_References_1.IDWord
WHERE (((dbo_tblSYS_Words_1.Word)="die") AND ((dbo_tblSYS_Word_References.IDTable)=0) AND ((dbo_tblSYS_Word_References_1.IDTable)=1));


Wichtig ist, dass es sich in der Quelle um 3 Verschiedene Datensätze handelt, die von verschiedenen Ids Kennungen herkommen.
Doch die Ausgabe fasst das eigentliche Ausgabe-Set nochmals zusammen.

Ein Vorteil ist, dass dabei die Feldbezeichnungen gleich bleiben.
Hier unterscheidet sich der Wechsel zu einer Unionsabfrage.
Mobile
SQL
»
SQL Commands
»
Install SQL Server Express Edition and Start login
»
SQL Server Warning: Data loss could occur
»
SQL Server: Default default current time
»
Instr(..) in SQL Server
»
Access, SQL : Duplikate oder doppelte Ergebnisse ausblenden mit DISTINCT
»
Verschachtelte, komplexe Abfragen mit Detailfeldern erweitern
»
Verschachteln von komplexen Abfragen
»
SELECT Abfrage als geschlossenes neues Datenset, Tabelle ausgeben
»
Kapseln eines SQL-Ergebnisses / Werte-Tabelle in einer neuen Tabelle

.

Contact for Jobs, Project Requests: raimund.popp@microsoft-programmierer.de