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

Update - Unterabfrage

Frage Entwicklung Datenbanken

Mitglied: ottscho

ottscho (Level 2) - Jetzt verbinden

08.07.2011, aktualisiert 15:27 Uhr, 2424 Aufrufe, 3 Kommentare

Hey,

heute sind dummerweise einige Duplikatdatensätze angelegt bzw. automatisch durch ein fehlerhaften Import eingefügt worden, welche ich wieder los werden möchte.

Ich habe in meiner Tabelle ein Feld AccountNumber, CreatedOn, Delete

Nun sieht es z.B. so aus:


Accountnumber , CreatedOn
10000 , 2010-12-01 18:49:34
10000 , 2011-07-08 14:45:00
10001 , 2010-03-01 18:49:34
10002 , 2010-08-05 04:49:34
10003
10003

Mein Probelm, nicht alle Datensätze sind doppelt. Ich möchte nun alles Datensätze, welche heute angelegt worden sind und welche doppelt sind markieren. bzw. in das Feld "Delete" eine 1 rein schreiben.
Ich wollte erst mal ein select machen, aber da scheitere ich leider schon:

01.
SELECT [AccountNumber] FROM [tw_elektric_MSCRM].[dbo].[AccountBase] 
02.
    where (SELECT COUNT(*)  FROM [tw_elektric_MSCRM].[dbo].[AccountBase] 
03.
    where [AccountNumber] = [AccountNumber] 
04.
    group by  [AccountNumber]) >1
Oder

01.
SELECT Unterabfrage.* 
02.
FROM [ 
03.
SELECT COUNT(*) As Anzahl,[AccountNumber],max(CreatedOn) 
04.
   FROM [tw_elektric_MSCRM].[dbo].[AccountBase] 
05.
   group by  [AccountNumber] 
06.
   ) As Unterabfrage 
07.
WHERE Unterabfrage.Anzahl > 1

Ich hoffe ihr habt eine Idee.

Danke
Mitglied: Indrador
08.07.2011 um 15:49 Uhr
Hi,

das hier gibt genau das aus, was du suchst:

01.
select distinct		account, 
02.
					(	 
03.
						select COUNT(t1.account) from Testdb..account_test t1  
04.
						where t1.account = t.account  
05.
06.
from Testdb..account_test t 
07.
 
08.
where	account in	(	 
09.
						select t2.account from Testdb..account_test t2 
10.
						group by t2.account 
11.
						having COUNT(t2.account) > 1  
12.
					)
Gruß
Bitte warten ..
Mitglied: ottscho
08.07.2011 um 15:59 Uhr
Hey,
danke dir, dass sieht schon mal gut aus.
Jetzt bekomme ich eine Liste mir alle Accountnummern welche Doppelt sind.

01.
select distinct	[AccountNumber], 
02.
					(	 
03.
						select COUNT(t1.[AccountNumber]) from [tw_elektric_MSCRM].[dbo].[AccountBase] t1  
04.
						where t1.[AccountNumber] = t.[AccountNumber]  
05.
06.
from [tw_elektric_MSCRM].[dbo].[AccountBase] t 
07.
 
08.
where	[AccountNumber] in	(	 
09.
						select t2.[AccountNumber] from [tw_elektric_MSCRM].[dbo].[AccountBase] t2 
10.
						group by t2.[AccountNumber] 
11.
						having COUNT(t2.[AccountNumber]) > 1  
12.
					)
Ausgabe:
10000 2
10005 2
10006 2
10009 2
10011 2
10012 2
10015 2
10016 2
10017 2
10023 2

Und jetzt muss in den Datensatz von Beiden markiern, welcher heute erstellt wurde. Sprich CreateOn='2011-07-08'
Bitte warten ..
Mitglied: Indrador
08.07.2011 um 16:03 Uhr
na das ist doch einfach,

01.
delte from account_test 
02.
where account in ( 
03.
select distinct		account, 
04.
					(	 
05.
						select COUNT(t1.account) from Testdb..account_test t1  
06.
						where t1.account = t.account  
07.
08.
from Testdb..account_test t 
09.
 
10.
where	account in	(	 
11.
						select t2.account from Testdb..account_test t2 
12.
						group by t2.account 
13.
						having COUNT(t2.account) > 1  
14.
15.
AND 
16.
CreateOn='2011-07-08'
Denk nur dran, du hast in deiner Tabelle Datum+Uhrzeit, wenn du auf ein
Datum vergleichst musst du ggf. je nach DBS die Zeit abschneiden mit cast(Feld as date) o.ä.
sonst findet er keinen Datensatz, weil er genau das Datum + eine exakte Uhrzeit sucht.
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(4)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Windows Server
gelöst Server 2016 Standard - Update KB3213986 hängt (1)

Frage von StillerLeser09 zum Thema Windows Server ...

Windows Update
Windows Update-Suche nach Win7 Neuinstallation wieder schneller (5)

Erfahrungsbericht von the-buccaneer zum Thema Windows Update ...

Windows 7
gelöst Windows 7 Update Neustart dialog beenden? (2)

Frage von aif-get zum Thema Windows 7 ...

Heiß diskutierte Inhalte
Erkennung und -Abwehr
Virenschutz - Meinungen (24)

Frage von honeybee zum Thema Erkennung und -Abwehr ...

Windows 10
Welches OS für Firmengeräte? (17)

Frage von MarkusVH zum Thema Windows 10 ...

Exchange Server
SBS2011: POP3-Connector 10 MB Grenze Email Benachrichtigung (13)

Frage von bogi1102 zum Thema Exchange Server ...

DNS
Brauche einen Nameserver (12)

Frage von leon123 zum Thema DNS ...