Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Doppelte Datensätze entfernen, aber nicht anhand alle Spalten

Frage Entwicklung Datenbanken

Mitglied: Budda

Budda (Level 1) - Jetzt verbinden

30.01.2009, aktualisiert 14:33 Uhr, 5630 Aufrufe, 4 Kommentare

Hallo,

folgende Problematik:

Ich benötige auf einem MS SQL 2005 ein View das die Datensätze aus 2 verschiedenen Tabellen zusammenführt. Hierbei kann es aber vorkommen das identische Datensätze in den Tabellen vorhanden sind. Soweit so gut, kann man ja mit UNION machen.
Aber die Datensätze beinhalten leider Spalten vom Typ TEXT die nicht vergleichbar sind, zudem sind die Datensätze teilweise nicht 100% gleich, so das sie nicht gefiltert würden.

Ich möchte nun im Prinzip Spalte1, Spalte2, Spalte3 und Spalte4 haben, aber der vergleich auf doppelte Datensätze soll nur anhand von Spalte1 und Spalte2 gemacht werden.

Ist das überhaupt möglich? Ich hab es bisher nur mit einer temporären Tabelle hinbenkommen, wo ich Tabelle1 und Tabelle2 per UNION zusammenführe aber nur Spalte1 und Spalte2 selecte und das ergebnis in eine temptabelle packe.
Diese benutze ich dann wiederum um mir anschließen per join die anderen benötigten Spalten aus den 2 Tabellen zu holen. Nur kann ich ja keine temptabellen in einem view benutzen.

Jemand noch eine Idee wie ich das bewerkstelligen könnte?

Gruß
Budda
Mitglied: nxclass
30.01.2009 um 14:51 Uhr
leg Dir doch in jeder SELECT Anweisung der UNION Abfrage 2 zusätzliche Felder mit Kopien der Spalte1 und Spalte2 an, dabei manipulierst du deren Inhalt so, dass du Ihn gruppieren könntest. (Großschreibung, Trimmen, auf 128 Zeichen kürzen, ...)

dann machst du um die UNION Abfrage einfach eine SELECT Anweisung und gruppierst nach den 2 neuen Spalten.

hoffe das Klappt so ..
Bitte warten ..
Mitglied: Guenni
30.01.2009 um 19:53 Uhr
Hi Budda,


eine neue Tabelle aus zwei Tabellen erstellst du so:


01.
 
02.
create neue_tabelle 
03.
 
04.
select tabelle1.spaltenname1, tabelle1.spaltenname2 . . . usw., tabelle2.spaltenname1 . . . usw. 
05.
 
06.
from tabelle1, tabelle2 
07.
 
08.
where tabelle1.spaltenname1=tabelle2.spaltenname1 
09.
 
10.
and tabelle1.spaltenname2=tabelle2.spaltenname2 
11.
 
Das sogenannte Qualifizieren, . . . tabelle1.spaltenname . . ., wäre notwendig, wenn die Spaltennamen

in Tabelle1 und Tabelle2 gleich sind.


Die Syntax zum Erstellen von Views unter MS kenne ich nicht, aber ich vermute mal, dass es gleich ist,

also **create view . . . usw. "


Gruß

Günni
Bitte warten ..
Mitglied: MadMax
02.02.2009 um 02:01 Uhr
Hallo Budda,

01.
select Spalte1, Spalte2, Spalte3, Spalte 4 
02.
from Tabelle1 
03.
union all 
04.
select Spalte1, Spalte2, Spalte3, Spalte 4 
05.
from Tabelle2 t2 
06.
where not exists (select * from Tabelle1 t1 where t1.Spalte1 = t2.Spalte1 and t1.Spalte2 = t2.Spalte2)
bringt alle Zeilen aus Tabelle1 und alle Zeilen aus Tabelle2, die nicht in Spalte1 und Spalte2 mit einer Zeile aus Tabelle1 übereinstimmen.

Gruß, Mad Max
Bitte warten ..
Mitglied: Budda
02.02.2009 um 10:55 Uhr
Besten Dank Mad Max, das war genau das was ich gebraucht habe.
Bitte warten ..
Neuester Wissensbeitrag
Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...