Announcement

Collapse
No announcement yet.

Rekursiv abfragen

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

  • Rekursiv abfragen

    Hallo zusammen,

    ich habe ein problem mit der ausgliederung verschiedener artikel in einzelne gruppen.

    Die artikel sind nicht in gruppen unterteilt. ich müsste also irgendwie eine umgekehrte select abfrage machen.

    Also Beispiel:

    Produkt -> gebe ich ein

    TI-f-KN43

    Artikelgruppen -> kann ich vordefinieren

    *kn*
    w?t*
    w?s*

    und so weiter...


    nun wollte ich evt über eine abfrage prüfen welche artikelgruppe zu dem produkt passt.
    kann mir jemand einen tip geben wie ich das machen soll?

    Mein das was mir einfällt wäre, alle einzeln durchzugehen, mit der select abfrage auf korrektheit prüfen und die passende dann auszugeben. Das kann es aber irgendwie nicht sein weil das ja voll den rechenaufwand in beschlag nehmen würde.


    Grüsse oli

  • #2
    Originally posted by oeli View Post
    Hallo zusammen,

    ich habe ein problem mit der ausgliederung verschiedener artikel in einzelne gruppen.



    Grüsse oli
    - Hast du so etwas wie ein Datenmodel ? Und das DB System wäre noch hilfreich

    Gruss

    Comment


    • #3
      Abfrage mit einer RegEx ....bsp. bei MySQL

      http://dev.mysql.com/doc/refman/6.0/...perator_regexp
      Christian

      Comment


      • #4
        Hm, ein db model.

        Artikel -> ca 10000 verschiedene artikel
        Artikelmaske -> versuch diese in gruppen zu fassen

        Die Beziehung zwischen Artikelmaske und dem Artikel selber ist nicht über die datenbank gegeben, da man sonst viel zu viel datensätze ergänzen müsste.
        Wir versuchen diese Beziehung durch die wahl einer Abfrage zu gewährleisten welche artikel mit ähnlichen namen (daher auch ähnliche produkte) in Gruppen fassen müsste.

        Also wenn ich meine gesamte artikelliste durch eine abfrage mit einer artikelmaske laufen lasse sollten dann sagen wir 20 seperiert werden. und in diesen 20 müsste dann meine vorher ausgewählter artikel liegen.

        und das alles blos andersrum. sprich ich habe einen artikel bei dem ich weis er ist in irgendeiner gruppe und ich müsste dann wissen wie diese heist.

        nen weng schwer zu erklären.

        Aber die eigentlich intention ist das ich versuche einer überarbeitung der db bzw aller einzelnen artikel zu vermeiden. dann müsste ich jedem artikel eine gruppe manuell zuweisen und das wär nen weng heavy da es bestimmt 10000 sind.

        vielleicht könnte ich auch ein programm schreiben welches einmalig durchläuft aber dann hätte ich immer noch das problem das ich bei jedem neueintrag einen nachtlauf machen müsste... gibt noch nen paar andere ansätze aber die sind alle nen weng heavy und denke so wie oben beschrieben sollte es am einfachsten sein die db an die andere anzupassen.

        oh noch zum db system. mach das über access aber das spielt keine rolle da ich die abfragen mit sql befehlen mache oder?
        Zuletzt editiert von oeli; 26.06.2008, 08:34.

        Comment


        • #5
          Zu sagen wäre noch das die datenbanken nicht direkt zusammenhängen. sprich die artikel in einer sql db sind und die artikelmaske die artikel aus der sql datenbank holt.

          vielleicht mach das ein wenig verständlicher wieso ich die andere db nicht ändern will und die artikel maske vorher nicht eingetragen wurde.

          Comment


          • #6
            Hm hab das problem mit dem LIKE befehl gelöst. danke noch für denk link


            hier mal noch die interessanten zeilen.

            .....
            If Kombinationsfeld57.Value <> "" Then
            Kombinationsfeld60.Value = ""
            Dim flag As Boolean
            flag = True

            Dim Db As Database
            Dim Rs As Recordset

            Set Db = CurrentDb()
            Set Rs = Db.OpenRecordset("BG", dbOpenDynaset)
            Rs.MoveLast
            iMaxZeile = Rs.RecordCount
            Rs.MoveFirst

            Do
            n = n + 1

            If Kombinationsfeld57 Like Rs.Fields("Artikelmaske") Then
            Kombinationsfeld60.Value = Rs.Fields("Artikelmaske")
            n = iMaxZeile
            End If
            Rs.MoveNext

            Loop While n <> iMaxZeile
            Rs.Close
            Db.Close
            ......

            Comment

            Working...
            X