MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Access & Datenbanken > SQL
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 16.08.2018, 09:17   #1
Game-Boy
MOF User
MOF User
Standard T-SQL : MSSQL 2000 - Problem mit Union-Abfrage

Hallo,

ich habe eine Union-Abfrage mit folgendem Aufbau:

SELECT .....
FROM ......
WHERE .....
UNION ALL
SELECT....
FROM.....
WHERE.....

Nun kann es sein, dass beide Teile die gleichen Datensätze (also gleiche ID) liefern und die dann doppelt (bzw. mehrfach) ausgegeben werden.

Deshalb meine Frage an die Experten:
Gibt es eine Möglichkeit, dass die betreffenden Datensätze nur einmal ausgegeben werden?

Danke und Gruß
Game-Boy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.08.2018, 11:57   #2
fraeser
MOF Meister
MOF Meister
Standard

Mal ins Blaue:

Code:

SELECT * FROM
(
SELECT DeineID, .....
FROM ......
WHERE .....
UNION ALL
SELECT DeineID, ....
FROM.....
WHERE.....
)
GROUP BY DeineID

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.08.2018, 13:12   #3
hcscherzer
MOF Guru
MOF Guru
Standard

Man könnte vielleicht auch einfach das ALL weglassen?

In Jet-SQL (Access) sorgt es jedenfalls für die Unterdrückung der Doubletten, wenn man es weglässt. In T-SQL bin ich grad nicht sicher ...

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.08.2018, 13:25   #4
fraeser
MOF Meister
MOF Meister
Standard

Ja, Du hast Recht! Ohne ALL werden Duplikate unterdrückt - auch in T-SQL.

__________________

Gruß, Jan

Zitat:

Programmieren und Microsoftail: "Gestern stand ich noch am Abgrund.....heute bin ich einen Schritt weiter....!"

fraeser ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.08.2018, 13:42   #5
Game-Boy
Threadstarter Threadstarter
MOF User
MOF User
Standard

Danke für eure Antworten.

Wenn ich ALL weglasse, kommt die Meldung:

ADO Fehler: Für die Datentypen text, ntext oder Image kann DISTINCT nicht angegeben werden.

Mit SELECT DISTINCT habe ich auch schon herumexperimentiert, aber ohne Erfolg. Da kam auch o.g. Fehler.

Hinweis:
Ich arbeite mit Access 2003 in Verbindung mit MSDE2000. Aber das sollte ja keine Rolle spielen.

Gruß
Micha
Game-Boy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.08.2018, 14:15   #6
hcscherzer
MOF Guru
MOF Guru
Standard

Offensichtlich klappt das nicht mit langen Feldern - wenn man der Fehlermeldung folgt.
Wusste ich auch nicht - ich verwende diese langen Datenfelder auch nicht so oft.

Wenn es "nur" um Textfelder ginge könnte man sie umwandeln mit
Code:

CONVERT(nvarchar(max), langes_textfeld)
Wenn Du tatsächlich Felder mit Datentyp image hast, wüsste ich spontan keinen Rat.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.08.2018, 14:33   #7
Game-Boy
Threadstarter Threadstarter
MOF User
MOF User
Standard

Nein Image-Datentypen habe ich nicht, das steht nur so in der Fehlermeldung.
Ich habe da nur ntext und nvarchar.
Allerdings weiß ich nicht wie ich deinen Code in meine SQL-Anweisung einbauen soll.
Game-Boy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.08.2018, 11:55   #8
hcscherzer
MOF Guru
MOF Guru
Standard

Zitat:

wie ich deinen Code in meine SQL-Anweisung

Mal abgesehen davon, dass Deine SQL-Anweisung in #1 ziemlich knapp gehalten ist:
Führe einfach alle Felder hinter dem SELECT einzaln auf und verwende für die vom Datentyp ntext meine Anweisung aus #6.

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.08.2018, 15:15   #9
Game-Boy
Threadstarter Threadstarter
MOF User
MOF User
Standard

Hallo,

ich habe meine SQL-Anweisung extra gekürzt damit es übersichtlich bleibt.

Nun hab ich mal alle Felder einzeln aufgeführt und herausgefunden, dass es an einem ntext-Feld hängt, welches ich eigentlich gar nicht brauche.

Wenn ich es weglasse, funktionierts.

Mit dem vorgeschlagenen
CONVERT(nvarchar(max), langes_textfeld)
komme ich nicht klar, es kommt da immer eine Fehlermeldung.
Laut Mr.Google funktioniert das wohl erst ab SQL-Server 2008.

Aber so ist mir ja auch geholfen.

Danke nochmal.
Game-Boy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 20.08.2018, 17:45   #10
hcscherzer
MOF Guru
MOF Guru
Standard

SQLServer 2000 ... das ist wahrlich ein Oldtimer, das hatte ich übersehen.
Da gäbe es die Function CAST als Alternative zu CONVERT ...

Aber wenn Du das ntext Feld weglassen kannst, ist ja alles in Butter.

BTW: setze doch bitte den Status des Thread auf "erledigt".

__________________

Freundlichen Gruß
Hans-Christian
-----------------------------------------
Oft erwünscht, selten beachtet: nach Erledigung des Problems den Thread als erledigt zu markieren
-----------------------------------------
Ich möchte nur Mitglied in einem Verein sein, der Leute wie mich nicht als Mitglied aufnimmt (Groucho Marx).
-----------------------------------------
Ab sofort regelmässig: MOF Stammtisch in Bremen. Näheres hier.
hcscherzer ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:41 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.