Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    47

    Mysql, come risolvere la seguente query?

    Nel mio db ho una tabella TAB con un campo C1 che è un float tra 0 e 5, un campo C2 che è un intero che può andare da zero a qualsiasi numero e infine un campo RISULTATO di cui devo fare ogni tanto l'update in base ai valori di C1 e C2 x ogni riga presente nella tabella.

    Il valore che deve finire in RISULTATO è dato da questo calcolo: C1 x 8 x moltiplicatore (che può essere uno dei seguenti valori: 0,2 0,6 1)

    ora il moltiplicatore è calcolato in base al valore di C2, ovvero
    se:
    C2 < 1000: moltiplicatore = 0,2
    1000 < C2 < 10000 = 0,6
    C2 > 10000 = 1

    Sapete come potrei fare questa query?
    Attualmente la mia query è:

    UPDATE tab
    SET `RISULTATO`=
    (SELECT `C1` * 8 * moltiplicatore as newResult
    FROM `tab`)
    ;

    moltiplicatore lo trovo così......

    SELECT
    (CASE
    WHEN C2 <= 1000 THEN 0,2
    WHEN C2 > 1000 AND C2 <= 10000 THEN 0,6
    WHEN C" > 10000 THEN 1
    END)
    AS moltiplicatore
    FROM tab


    le devo combinare in una sola, vi sembra giusto?

    UPDATE tab
    SET `RISULTATO`=
    (SE

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    47
    Mi taglia l'ultimo pezzo, io ho tentato così:


    UPDATE tab
    SET `RISULTATO`=
    (SELECT `C1` * 8 * SELECT
    (CASE
    WHEN C2 <= 1000 THEN 0,2
    WHEN C2 > 1000 AND C2 <= 10000 THEN 0,6
    WHEN C" > 10000 THEN 1
    END)
    AS moltiplicatore
    FROM tab
    as newResult
    FROM `tab`)
    ;


    E' pura teoria perchè per provarla devo far delle modifiche al db......ma che ne dite?

  3. #3
    in M$SQL si fa così

    UPDATE tabella SET C3=C1*
    (CASE
    WHEN C2 <= 1000 THEN 0.2
    WHEN C2 > 1000 AND C2 <= 10000 THEN 0.6
    WHEN C2 > 10000 THEN 1
    END)

    adattalo per MySql


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.