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

SQL - dynamische Anfüge-Abfrage in Tabelle

Frage Entwicklung Datenbanken

Mitglied: movido

movido (Level 1) - Jetzt verbinden

08.05.2007, aktualisiert 09.05.2007, 7701 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 Hilfe bei SQL-Abfrage (5)

Frage von emeriks zum Thema Datenbanken ...

Datenbanken
gelöst SQL-Abfrage mit "kleiner gleich" funktioniert nicht (2)

Frage von derSESO zum Thema Datenbanken ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(5)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

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

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...