Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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

SQL - dynamische Anfüge-Abfrage in Tabelle

Frage Entwicklung Datenbanken

Mitglied: movido

movido (Level 1) - Jetzt verbinden

08.05.2007, aktualisiert 09.05.2007, 7736 Aufrufe, 5 Kommentare

dynamisch generierte Anfüge-Abfrage gleicher Struktur -> insert into tabelle ohne duplikate

Hallo zusammen,

habe bereits diverse Foren zu meinem Thema ohne Erfolg durchklamüsert...

Es gibt eine bestehende leere Tabelle, die anhand einer SICH WIEDERHOLENDEN Anfüge-Abfrage ohne Duplikate eines Feldes gefüllt werden soll.

Beispiel:
- leere Zieltabelle A: Feld1 = Name; Feld2 = aktiviert
- Abfrage: wird aus vba generiert, indem aus unterschiedlichen und gefüllten Tabellen (B + C) unterschiedliche Feldinhalte gleicher Struktur in die Tabelle A eingefügt werden (einfach mit insert into)
- gefüllte Quelltabellen B+C: Feld1 = Name; Feld2 = aktiviert

Feld1 ist hier entscheidend -> dort soll "gruppiert werden", d.h. in der Zieltabelle soll durch den insert-into-Befehl KEINE Duplikate entstehen...

Ich kriegs nicht hin, das beschriebene Beispiel ohne Duplikate durchzuführen...

Ich hoffe, dies funktioniert ohne temporäre Tabelle/hoher Geschindigkeitsverlust :X

Gruß,
Stefan
Mitglied: Biber
08.05.2007 um 19:46 Uhr
Moin movido,

ist mir noch eine Spur zu abstrakt. Nachfrage:

  • die Abfrage fragt gleichzeitig oder alternativ oder nacheinander die Quelltabellen B und C ab?
  • ..."indem aus unterschiedlichen und gefüllten Tabellen (B + C) unterschiedliche Feldinhalte gleicher Struktur.." -->Du mir langsam erklären können?? Evtl. kleines Beispiel?
  • Wenn denn die Daten ohnehin offensichtlich in zwei Quelltabellen vorhanden und abrufbar sind, wozu überhaupt die Persistierung in einer redundanten dritten Tabelle?

Grüße
Biber
Bitte warten ..
Mitglied: movido
09.05.2007 um 00:06 Uhr
Hallo Biber!

Danke für die rasche Antwort!!

Antworten auf deine Fragen:

die Abfrage fragt gleichzeitig oder alternativ oder nacheinander die Quelltabellen B und C ab?

-> zur Zeit noch nacheinander: es ist sozusagen eine simple for-Schleife, welche so oft läuft, wie es Quelltabellen gibt und der bei jedem Durchlauf einen INSERT INTO-Befehl für die "durchlauf-entsprechende" Zieltabelle ausführt.

..."indem aus unterschiedlichen und gefüllten Tabellen (B + C) unterschiedliche Feldinhalte gleicher Struktur.." -->Du mir langsam erklären können?? Evtl. kleines Beispiel?

-> Beispiel Quelltabelle B:
Name | Alter
Biber:D | 13
Stefan | 12


-> Beispiel Quelltabelle B:
Name | Alter
Heinrich | 70
Biber:D | 13

Ergebnis soll sein, so schnell wie möglich folgende leere Tabelle mit gleicher Struktur (Felder: Name, Alter), folgender Inhalt steht:

-> Beispiel Zieltabelle A auf Quelltabelle B+C:
Name | Alter
Biber:D | 13
Stefan | 12
Heinrich | 70
... wobei die Reihenfolge der Datensätze in Zieltabelle A keine Rolle spielt.

Hat was vom GROUP BY-Befehl, aber mit dem gehts nich oder ich kriegs nich hin oder ich hab mich dann, als ich ihn richtig eingesetzt habe, vertippt... :X

Wenn denn die Daten ohnehin offensichtlich in zwei Quelltabellen vorhanden und abrufbar sind, wozu überhaupt die Persistierung in einer redundanten dritten Tabelle?

-> damit nich dauernd für jede Aktion die Tabellen ausgelesen werden müssen (liegen im Netz)

Danke schonmal für Deine Hilfe!

Gruß,
Stefan
Bitte warten ..
Mitglied: Biber
09.05.2007 um 07:55 Uhr
Moin movido,

wenn denn der Sachverhalt so ist wie geschildert, dann wäre doch (verbal) immer die Abfrageformulierung:
"Hole mir aus der Quell-Tabelle alle Satzkombinationen "Name" und "Alter", die noch nicht in der Zieltabelle vorhanden sind und füge sie in die Zieltabelle ein."

Oder in (ungetestetem) Pseudo-SQL sinngemäß:
01.
 SELECT Name, Alter from Quelltabelle 
02.
WHERE Name, Alter NOT IN (Select Name, Alter from Zieltabelle);
Und ggf. noch ein "INSERT INTO Zieltabelle" drumherum.

Oder hab ich noch etwas übersehen?

Gruss
Biber
Bitte warten ..
Mitglied: movido
09.05.2007 um 10:32 Uhr
Wooohoooo.....!!!!!! Mit ein wenig rumpfeilen hats funktioniert..... "NOT IN" => best )))
Hab vorher den gleichen Syntax mit NOT EXISTS statt NOT IN benutzt...... :XXXXXX

INSERT INTO Zieltabelle ( Name )
SELECT Name FROM Quelltabelle
WHERE Name NOT IN (SELECT Name FROM Zieltabelle)
AND Name <> '';

-> Muchos Gracias Biber !!!!!!

Gruß,
movido
Bitte warten ..
Mitglied: Biber
09.05.2007 um 11:50 Uhr
-> Muchos Gracias
De nada, movido, da nich' für...

Ich mach den Beitrag dann mal dicht mit grünem Haken.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst SQL-Abfrage - DISTINCT - letztes Datum (3)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst Hilfe bei SQL-Abfrage (5)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst SQL - Zwei Tabellen zusammenführen (6)

Frage von Memo66 zum Thema Datenbanken ...

Datenbanken
gelöst SQL Abfrage mit Visual Studio (5)

Frage von specialuser zum Thema Datenbanken ...

Neue Wissensbeiträge
Viren und Trojaner

Link: Neues Botnetz über IoT-Geräte

Information von certifiedit.net zum Thema Viren und Trojaner ...

Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Switche und Hubs
gelöst VLAN für Gäste WLAN einrichten über FritzBox und Switch (10)

Frage von Elo-14 zum Thema Switche und Hubs ...

Windows Server
Frage zu Server Rack (10)

Frage von rainergugus zum Thema Windows Server ...