Announcement

Collapse
No announcement yet.

Tabellen verknüpfen und dynamisch laden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabellen verknüpfen und dynamisch laden

    Hey ich bin leider absoluter SQL Neuling, und hab gerade ein paar Probleme, bei denen ich nicht weiterweiß. Hoffe ihr könnt helfen.

    Vorgeschichte: Ich habe mehrere Tabelle, auf die ich per ODBC Schnittstelle zugreifen kann. (Sprich verbinden) Eine große Tabelle A aus der ich ein paar Spalten braucht, eine große Tabelle B aus der ich eine Spalte brauch und dann noch ganz viele Tabel x1,x2... aus denen ich immer ein paar Spalten brauch. Wie die x1... aber genau heißen steht nur in Tabelle A, sprich das ist dynamisch.

    So 1. Problem:

    Die Tabellen A und B verknüpfen. Hab das mit Acces probiert und konnte auch aus beiden Tabellen einzeln die Daten holen. Aber zusammen ging nicht (lief immer endlos das Programm...). Hab folgendes probiert:
    Select a.bla1, a.bla2, ... b.bla1 FROM a,b;

    2. Problem:
    Wie lade ich diese Tabellen dynamisch? Das heißt in einer der Spalten von A steht zB. A052 oder so, dann heißt die Tabelle, die ich laden muss A052_Position.

  • #2
    Hallo

    Access kann imho nur 2 Gig verwalten.
    Als ich frueher des öfteren mit Access auf eine RDB zugriff und keine Ergebnis bekam lag es meisst an der Quantitaet des DS.

    Aufwaendige Berechnungen sollten auch eher auf der RDB stattfinden, da diese viel performanter ist.

    Zu zwei fällt mir leider nur dynamisches SQL oder ein Union ein.
    Evtl kann man da auch etwas über VBA machen.

    Gruß

    Martin

    Comment


    • #3
      RDB = Relationale Datenbank?
      DS = Datensatz?

      Auf die Datenbank selber kann ich nicht zugreifen, das ist eine Verwaltungssoftware auf die ich nur per ODBC zugreifen kann. Mhm über 2Gb könnte die Möglicherweise schon sein. Was gibt es denn für Programme die sowas könnten? Und zu meinem Code: an sich stimmt der aber vom Prinzip her oder? Muss für dieses aus 2 Tabellen auslesen noch irgendwas gegeben sein? Evnt. eine Art Verknüpfung oder so?

      Comment


      • #4
        Ich glaube nicht, dass du das willst, was du als SQL-Statement geschrieben hast. Das liefert nämlich alle möglichen Kombinationen aus den Werten in den Tabellen, am besten mal mit einem WHERE einschränken:
        Select a.bla1, a.bla2, ... b.bla1 FROM a,b where a.id < 10 and b.id < 10
        ... und schauen, was da rauskommt

        Bezüglich Punkt 2 braucht man, wie Martin schon sagte, ziemlich sicher dynamisches SQL. Ohne Kenntnis der Datenbank lässt sich aber nichts detaillierteres dazu sagen.

        Und der Zugriff auf die Datenbank hängt sicher nicht mit einer Applikation zusammen, sondern ob du dich entsprechend anmelden kannst. Denn mit ODBC kann man nur auf Datenbanken, nicht auf Applikationen, zugreifen!

        bye,
        Helmut

        Comment


        • #5
          id scheint er leider nicht zu kennen. Gibt es da wenn man access benutzt evnt. einen anderen Namen zu?
          Noch eine andere Frage, die mir beim arbeiten mit diesem Projekt aufgefallen ist.
          Ich hab jetzt um zu testen erstmal per insert into und 2 Abfragen die Daten die ich brauche aus den beiden Tabellen in eine geschrieben. Doch jetzt tritt leider das Problem auf das er die unter einander einträgt. Also Spalte 1 Zeilen 1-100 zB die ersten Daten und dann aber Spalte 2 101-200 die anderen Daten. Wie sage ich das er immer oben anfangen soll??

          Comment


          • #6
            Originally posted by LastSamurai View Post
            id scheint er leider nicht zu kennen. Gibt es da wenn man access benutzt evnt. einen anderen Namen zu?
            Noch eine andere Frage, die mir beim arbeiten mit diesem Projekt aufgefallen ist.
            Ich hab jetzt um zu testen erstmal per insert into und 2 Abfragen die Daten die ich brauche aus den beiden Tabellen in eine geschrieben. Doch jetzt tritt leider das Problem auf das er die unter einander einträgt. Also Spalte 1 Zeilen 1-100 zB die ersten Daten und dann aber Spalte 2 101-200 die anderen Daten. Wie sage ich das er immer oben anfangen soll??

            Die ID ist nur als Bsp zu sehen.
            Dein Join würde ein karthesischs Produkt liefern.

            Falls Du beide Mengen vereinen willst, würde ich es mit einem Union machen.

            [highlight=sql]
            create table beide
            as
            select * from tabelle a
            union
            select * from tabelle b;

            [/highlight]

            Comment

            Working...
            X