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, 7689 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...