Announcement

Collapse
No announcement yet.

Index-Bestimmung durch Entscheidungsmatrix - aber wie?

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

  • Index-Bestimmung durch Entscheidungsmatrix - aber wie?

    Hallo Freaks!
    ich bin absolut neu hier und bin - wie die Nonne zum Kind - zu einem MS SQL Studio 2008 - Server gekommen!
    Eigentlich kann ich nur VB Studio .net programmieren, aber das ist ja fast das gleiche...
    Nach dem bischen SELECT, UPDATE und WHERE bin ich aber schnell mit meinem Latein am Ende.
    Daher wäre ich bei folgendem Problem um jeden Tip dankbar:

    Ich habe eine Tabelle dbo.CoilList mit 4500 Zeilen,
    die hat u.a. eine Spalte LXTH (bedeutet Länge x Dicke). Da stehen doubles von 0 bis 3000 drin.
    Anhand dieser Zahl soll in der Nachbarspalte CoilType der gleichen Tabelle mit Hilfe der folgenden Entscheidungsmatrix dbo.CoilTypeSorter

    MinLXTH MaxLXTH CoilTypeIndex
    0 399 -1
    701 800 3
    901 1200 2
    1901 2400 1
    NULL NULL NULL

    ein CoilTyp zugeordnet werden. Wenn keine Zuordnung möglich ist, dann soll CoilTypeIndex = 0 sein.

    Warum macht man das mit der Matrix so, weil man bei zukünftigen Längen- und Dickenänderungen einfach nur die Entscheidungsmatrix dbo.CoilTypeSorter ändern möchte.

    Guter Gedanke, aber genau das stellt mich vor große Probleme. Ich habe schon so viel rumprobiert und nur Käse erhalten, dass ich hier noch nicht ein mal einen Codeauszug zur Diskussion stellen kann!

    Vielen Dank im Voraus

  • #2
    Hallo und willkommen,

    zunächst gibt es ein Unterforum, das ausdrücklich für MS-SQL Server gedacht ist. Die Namen dieses Unterforums sind zwar verwirrend, aber wie unter "Was gehört in dieses Forum" erläutert, bist du hier nicht wirklich richtig.

    Ich nehme an, dass Falk diese Diskussion verschieben wird.

    Zur Sache: Richtig verstanden habe ich das vorgesehene Verfahren nicht. Soweit ich mitgekommen bin, sollte es mit einer CASE-WHEN-THEN-Konstruktion gehen, siehe [wikibooks] Einführung in SQL: Nützliche Erweiterungen.

    Gruß Jürgen

    Comment


    • #3
      Hallo guntram,

      das kannst Du einfach über die Bereichswerte joinen:
      [highlight=SQL]
      SELECT CL.*
      ,ISNULL(CTS.CoilTypeIndex, 0) AS IDX
      FROM dbo.CoilList AS CL
      LEFT JOIN
      dbo.CoilTypeSorter AS CTS
      ON CL.LxTh BETWEEN CTS.MinLXTH AND CTS.MaxLXTH [/highlight]
      Olaf Helper

      <Blog> <Xing>
      * cogito ergo sum * errare humanum est * quote erat demonstrandum *
      Wenn ich denke, ist das ein Fehler und das beweise ich täglich

      Comment


      • #4
        Hallo Jürgen,
        sorry, ich muss mich hier erst mal orientieren - ich gelobe Besserung.
        Mit dem Case bin ich nicht richtig weiter gekommen, da ich den Schritt vom Skalar zur Tabelle gedanklich nicht richtig hin kriege...
        (siehe Bild1.jpg).
        Aber die Lösung von Helper läuft super - genau das habe ich gebraucht.

        Ich möchte mich bei euch herzlich bedanken - eine starke schnelle gute Truppe.
        Attached Files

        Comment

        Working...
        X