Zum Inhalt springen

Murcks

Mitglieder
  • Gesamte Inhalte

    38
  • Benutzer seit

  • Letzter Besuch

Beiträge von Murcks

  1. Also MS SQL Server 2005, T-SQL.

    Kartesisches Produkt hab ich auch schon probiert, aber ich krieg's so auch net hin. Das Ergebnis soll folgendermaßen aussehen:

    Jedes Element aus ABCD wird in die neue Tabele geschrieben, somit haben wir nach der Prozedur (4 *24 =) 96 Datensätze in der Tabelle stehen.

    Jeder Datensatz eines "Kombinationsblocks" bekommt ne nicht indizierte ID um Kombiblöcke wieder eindeutig identifizieren zu können.

    Bsp:

    NEUE TABELLE

    ID ELEMENT

    1 A

    1 B

    1 C

    1 D

    2 B

    2 A

    2 D

    2 C

    3 C

    3 B

    3 A

    3 D

    usw.

    Ist das verständlich? :confused:

  2. Hallo! :)

    Ich habe folgendes Problem zu lösen und komme auf keinen grünen Zweig:

    Ich habe n Datensätze aus einer Tabelle.

    Meinetwegen: A, B, C und D

    Und ich versuche einen Algorithmus zu entwickeln der mir alle (4! =) 24 Kombinationsmöglichkeiten berechnet, also:

    ABCD

    BADC

    CDAB

    usw.

    Leider fehlt mir der Ansatz. Hat einer von euch so etwas schonmal gemacht?

    Bitte um Hilfe.

  3. Hallo! :)

    Stellt euch folgendes vor:

    Ihr habt in einem Access-Formular eine Listbox in der Datensätze angezeigt werden. Ihr habt neben der Box zwei Buttons (Rauf / Runter). Mit diesen Buttons soll es möglich sein den/die jeweils markierten Satz/Sätze pro Klick eine Position nach oben oder unten zu verschieben.

    Frage: Gibt es eine Funktion dafür?

  4. @ Goos

    Danke! Das funktioniert! :D

    [FONT="Courier New"]DECLARE @Message AS VARCHAR(100)
    
    DECLARE @Value  AS DECIMAL(10, 4)
    
    
    SET @Value = 0.25
    
    
    SET @Message = 'Auf alle Artikel ' +
    
                  CONVERT(VARCHAR(10), FLOOR(@Value * 100))
    
                  + '% Rabatt!'
    
    
    PRINT @Message[/FONT]

  5. OK, wenn's keine explizite Funktion dazu gibt, dann werd ich das benutzen:

    [FONT="Courier New"][COLOR="Blue"]DECLARE[/COLOR] @Value [COLOR="blue"]AS DECIMAL[/COLOR] (10, 4)
    
    
    [COLOR="blue"]SET[/COLOR] @Value = 1.2000
    
    
    [COLOR="blue"]PRINT[/COLOR] [COLOR="Red"]'Die Zahl (auf eine Stelle hinterm Komma): '[/COLOR] +
    
    [COLOR="Magenta"]STUFF[/COLOR]([COLOR="magenta"]CONVERT[/COLOR]( [COLOR="blue"]VARCHAR[/COLOR](10) , @Value), [COLOR="Magenta"]CHARINDEX[/COLOR]('.', @Value) + 2, 3, [COLOR="Red"]''[/COLOR])[/FONT]

    Naja, hatte gedacht, dass es vielleicht weniger "kompliziert" geht, trotzdem Danke! :D

  6. Danke euch, aber funktioniert jetzt so:

    [FONT="Courier New"]EXEC ('Select ' + @strFormel)
    
    EXEC ('Insert Into [I]Zieltabelle[/I] ([I]Ergebnis[/I]) Values (' + @strFormel + ')')[/FONT]

    Wenn ich den Wert dann wieder brauche: Einfach 'n Select-Statement und den Wert wieder aus der Tabelle holen.

    So isset. Danke für eure Hilfe! :D

    (Kleine Frage noch am Rande: Was genau ist der Unterschied zwischen SET und SELECT? Möchte jetzt keinen neuen Thread dafür aufmachen.)

  7. OK, hab das Problem gelöst bekommen.

    In der Formel war am Ende ein '/ 1000'. Das habe ich dann mittels REPLACE-Funktion durch '* 0.001' ersetzt und schon wurde das richtige Ergebnis (mit Komma) ausgegeben.

    Danke für die Hilfe bis hier hin! :)

    So sieht's nun aus:

    DECLARE @strFormel AS VARCHAR(500)

    SELECT @strFormel = '( 2 * 1273 + 2 * 3456 ) / 1000'

    SET @strFormel = REPLACE(@strFormel, '/ 1000', '* 0.001')

    EXEC ('SELECT ' + @strFormel + 'AS Ergebnis')

    Habe jetzt schon mehrfach auf verschiedene Art und Weisen ausprobiert dieses Ergebnis in einer Variable zwischenzuspeichern, weil ich sie später noch verwenden muss.

    Sämtliche Versuche sind leider fehl geschlagen. Einer vielleicht 'n Tipp? :confused:

  8. In dem Programm können vom Benutzer Formeln zur Berechnung von Artikelmaßen eingegeben werden, da sich diese regelmäßig ändern.

    Diese Formel wird dann zum jeweiligen Artikel in einer Tabelle in SQL gespeichert.

    Diese Formel muss dann in SQL ausgerechnet werden.

  9. Ja aber der String mit der Formel (strFormel) kommt ja aus einem Programm und muss in SQL verarbeitet/ausgerechnet werden.

    DECLARE @myEval AS INT

    SELECT strFormel

    FROM tbl_Formeln

    WHERE ...

    SET @myEval = strFormel

    ...funktioniert doch nicht, oder?

  10. Hallo zusammen! :)

    Es gibt in VB eine Funktion Eval(). Diese Funktion liest einen mathematischen String ein und rechnet dieses aus.

    Bsp.

    DIM strFormel AS STRING

    DIM dblLoesung AS DOUBLE

    strFormel = "3 * 6 + 15/3"

    dblLoesung = Eval(strFormel)

    Somit wäre also dblLoesung = 23.

    Meine Frage: Gibt es so eine ähnliche Funktion in SQL 2005? Falls nicht, wie könnte man soetwas in SQL bewerkstelligen?

  11. Hallo!

    In VB (wie auch in anderen Programmiersprachen) gibt's die "Case-Anweisung", sprich:

    Select Case Farbe

    Case Rot

    (Mach dieses....)

    Case Blau

    (Mach jenes...)

    Case Grün

    (Mach welches...)

    End Select

    Jeder von euch kennt die. Aber wie lautet die Syntax dazu in SQL? :confused:

    Kann mir jemand helfen? :)

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...