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

Problem mit LöschAbfrage.. ältesten Datensatz beibehalten alle anderen löschen

Frage Entwicklung Datenbanken

Mitglied: karlchristian

karlchristian (Level 1) - Jetzt verbinden

20.08.2014, aktualisiert 09:30 Uhr, 1220 Aufrufe, 6 Kommentare

Hallo,

ich habe eine Frage zu einer LöschAbfrage, wo ich nicht genau weis Sie aufzubauen.

Ich habe eine Tabelle mit X Spalten u.a. Ref und Anlagedatum

Der Wert Ref ist x mal vorhanden,
nun möchte ich alle Werte dieser Tabelle löschen bis auf den ältesten Wert
so das nur noch 1x der Wert in der Spalte REF übrig bleibt

Ich drehe mich ein Wenig im Kreis, vielleicht kann mir jemand helfen

Mitglied: killer2012
20.08.2014 um 09:32 Uhr
moin KarlChristian

beim SQL-Server:

select * from tabelle order by ref desc

letztes Datum ablesen

delete from tabelle
where ref<'datum'

normalerweise '20.08.2014'

cu Rainer
Bitte warten ..
Mitglied: MadMax
20.08.2014 um 09:43 Uhr
Guten Morgen karlchristian,

dazu zwei Fragen:
1. Gibt es auch eine ID oder sonstwas eindeutiges?
2. Welche Datenbank?

Gruß, Mad Max
Bitte warten ..
Mitglied: karlchristian
20.08.2014, aktualisiert um 09:58 Uhr
Hallo Rainer,

danke für den Hinweis,

irgendwie liefert er mit immer noch alle Datensätze

Vielleicht hab ich mich auch missverständlich ausgedrückt.
In der Tabelle habe ich x mal den Wert Ref mit einer Spalte anlagedatum

REF Anlagedatum
1 01.02.2014
1 02.02.2014
1 03.02.2014
1 04.02.2014
2 10.04.2014
2 11.04.2014
2 12.04.2014

nun möchte ich alle Datensätze löschen lassen wo nur noch der älteste Wert übrig bleibt

REF Anlagedatum
1 01.02.2014
2 10.04.2014


Vielleicht verdeutlicht es nun einfacher was ich erreichen möchte
Bitte warten ..
Mitglied: karlchristian
20.08.2014 um 10:05 Uhr
Es handelt sich um eine MSSQL im Hintergrund die vorne mit Access bedient wird.
Der Wert Ref ist die ID (doppelte Werte zulässig)
Bitte warten ..
Mitglied: karlchristian
20.08.2014 um 10:22 Uhr
Ich habs nun änders gelöst,
min Wert am Datum vorblenden lassen
Das Ergebnis gespeichert
und in der Datenbank einen Primärschlüssel auf den Ref gelegt so das in Zukunft keine doppelten Werte mehr angelegt werden können.
Tabelle geleert
und die bereits "ältesten " Daten nur wieder eingefügt..

Danke aber nochmal..
Bitte warten ..
Mitglied: killer2012
20.08.2014 um 10:48 Uhr
moin KarlChristian
so wäre es eleganter gewesen

USE deine_tabelle
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
DECLARE @del1 int, @del2 int, @datum date

DECLARE cursor_del1 CURSOR scroll for
select distinct(ref), abfragedatum
from deine_tabelle
order by ref, abfragedatum

OPEN cursor_del1
FETCH NEXT FROM cursor_del1 INTO @del1, @datum
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE cursor_del2 CURSOR scroll for
select ref
from deine_tabelle
where ref=@del1
order by abfragedatum
OPEN cursor_del2
FETCH FIRST FROM cursor_del2 into @del2
FETCH NEXT FROM cursor_del2 into @del2
WHILE @@FETCH_STATUS = 0
BEGIN
delete from deine_tabelle
where current of cursor_del2
FETCH NEXT FROM cursor_del2 INTO @del2
END
CLOSE cursor_del2
DEALLOCATE cursor_del2

FETCH NEXT FROM cursor_del1 INTO @del1, @datum

END

CLOSE cursor_del1
DEALLOCATE cursor_del1

cu Rainer
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(1)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Exchange Server
Exchange Problem nach Verschiebung auf anderen ESXi Host (8)

Frage von Leo-le zum Thema Exchange Server ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (13)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (9)

Frage von 1410640014 zum Thema Backup ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...