Pagina 2 di 4 primaprima 1 2 3 4 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 34
  1. #11
    se uso il tuo codice mi dice che @dividendo e @divisore devo essere dichiarati...penso sia un problema di apici... allora ho messo gli apici...

    set @QUERY = 'SET ' + @dividendo + ' = (SELECT SUM (CAST ('+ @nome_soc_repl + ' as float)) FROM ExpTot)'

    set @QUERY2 = 'SET ' + @divisore + ' = (SELECT SUM (CAST ('+ @nome_soc_repl + ' as float)) FROM ExpTot where sede_tecnica = '''+ @CODE_PREFIX2 +''')'


    ma torna a dirmi

    Msg 8114, Level 16, State 5, Line 90
    Error converting data type varchar to float.


  2. #12
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Originariamente inviato da elsinore77
    se uso il tuo codice mi dice che @dividendo e @divisore devo essere dichiarati...penso sia un problema di apici... allora ho messo gli apici...

    set @QUERY = 'SET ' + @dividendo + ' = (SELECT SUM (CAST ('+ @nome_soc_repl + ' as float)) FROM ExpTot)'

    set @QUERY2 = 'SET ' + @divisore + ' = (SELECT SUM (CAST ('+ @nome_soc_repl + ' as float)) FROM ExpTot where sede_tecnica = '''+ @CODE_PREFIX2 +''')'

    ma torna a dirmi

    Msg 8114, Level 16, State 5, Line 90
    Error converting data type varchar to float.

    Beh, li devi ovviamente dichiarare; riprendi tutto quello che avevi scritto nel primo post

    Esegui tutto questo:

    DECLARE @PERC AS float
    DECLARE @QUERY AS VARCHAR(5000)
    DECLARE @QUERY2 AS VARCHAR(5000)
    DECLARE @dividendo AS float
    DECLARE @divisore AS float

    set @QUERY = 'SET @dividendo = (SELECT SUM (CAST ('+ @nome_soc_repl + ' as float)) FROM ExpTot)'

    set @QUERY2 = 'SET @divisore = (SELECT SUM (CAST ('+ @nome_soc_repl + ' as float)) FROM ExpTot where sede_tecnica = '''+ @CODE_PREFIX2 +''')'

    exec (@QUERY)
    exec (@QUERY2)

    set @perc = (@dividendo /@divisore) * 100

    Prova per curiosità a sostituire la variabile @nome_soc_repl con una stringa fissa (es: ABB_SACE) ed eseguirle

  3. #13
    fammi capire. ABB_SACE è una colonna testuale e tu vuoi sommarla? sicuro al 100% che dentro ci siano SOLO numeri?

  4. #14
    avevo già provato a cablare il nome nella procedura...e in effetti così funziona...almeno....

    però stavo pensando di cambiare strategia....uso un altro campo.....e stop...cos' mi evito casting da tutte le parti!!

    e poi metto tutto direttamente in una variabile di tipo varchar

    pensavo di fare uan cosa simile

    set @miavariabilevarchar =
    (SELECT SUM (ABB_SACE) as dividendo FROM ExpTot) /
    (SELECT SUM (ABB_SACE) as divisore FROM ExpTot where sede_tecnica = 'H/CL/DI/CAR')

  5. #15
    Originariamente inviato da elsinore77
    però stavo pensando di cambiare strategia....uso un altro campo.....e stop...cos' mi evito casting da tutte le parti!!
    "uso un altro campo"???? ma che vuol dire? sommi un campo a casaccio?

  6. #16
    ma no!! :-)

    metto il tutto in un altro campo ..lascio "ABB_SACE" di tipo float e metto tutto in un altro campo... mi evito qualche casino..forse...

  7. #17
    Originariamente inviato da elsinore77
    ma no!! :-)

    metto il tutto in un altro campo ..lascio "ABB_SACE" di tipo float e metto tutto in un altro campo... mi evito qualche casino..forse...
    ma che vuol dire "metto tutto in un altro campo"? e adesso di colpo ABB_SAVE è diventato float? non era varchar?

  8. #18
    era varchar si....ora però lo metto float....

  9. #19
    1. complimenti a chi ha progettato la tabella
    2. tutto 'sto casino, poi andava bene la primissima risposta che ti ho dato...

  10. #20
    tutta farina del mio sacco!

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.