Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 22
  1. #11
    che tipi di campi sono codice_prodotto e prezzo_riv ?

  2. #12
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    prezzo

    codice_prodotto e' varchar

    prezzo_riv e' money
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  3. #13
    devi usare un tipo solo, quindi uno dei due va castato. direi il prezzo a varchar

  4. #14
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    come

    puoi dirmi come posso fare a "castare" nella sintassi nella sp ?

    grazie
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  5. #15
    se lavori con le SP di sql, una cast la devi saper fare, ciccio!


    codice:
    CASE  WHEN @ordinamento=1 THEN codice_prodotto 
             WHEN @ordinamento=3 THEN CAST(prezzo_riv AS VARCHAR(50))
             ELSE Null
    END ASC,
    ho usato varchar(50) come esempio: usa la lunghezza di codice_prodotto.

    te ne ho fatta una, l'altra te la fai da solo, okkei?


  6. #16
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    ok

    diciamo che ho usato questa qui ma non ci lavoro su spesso...

    anzi e' l'unica che ho fatto e non mi e' mai servito modificarla...

    vedo che non da' errori di sintassi, ti ringrazio !!!

    spero pero' che poi convertendo in varchar un money, non ordini in questo modo crescente:

    23
    4
    56,57
    670,67
    80
    9000
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  7. #17

    Re: ok

    Originariamente inviato da billy1
    diciamo che ho usato questa qui ma non ci lavoro su spesso...

    anzi e' l'unica che ho fatto e non mi e' mai servito modificarla...
    per essere l'unica volta, ti sei andato a scegliere un argomento tosto! VVoVe:

  8. #18
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    si

    si infatti l'ho utilizzata anni fa, ho visto sul web un'esempio e l'ho adattata, ma non sono esperto...

    tutorial in italiano ne conosci ?
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

  9. #19
    Ciao intervengo nella vostra discussione,
    se non si vogliono usare troppi CASE o simili si possono creare delle query dinamiche se la versione di SQL Server che si usa è dal 2000 in su.

    La tua procedura potrebbe diventare così :

    codice:
    CREATE PROCEDURE codici
    /* in imput arriva la figura, restituisce tutti i valori associati alla figura.
    */
    @figura varchar(50) , @ordinamento varchar(50) 
     
     AS
      DECLARE @SQL nvarchar(4000)
    
      SET @SQL = 'SELECT b.codice_prodotto, b.prezzo_riv,  b.descrizione_breve, 
       b.descrizione_estesa FROM articoli b 
       WHERE b.fig = ''' + Replace(@figura,'''','''''') + ''' 
      and b.on_line=''yes'''
      
    CASE  WHEN @ordinamento=1 THEN SET @SQL = @SQL + ' order by codice_prodotto ASC'
             WHEN @ordinamento=3 THEN SET @SQL = @SQL + ' order by prezzo_riv ASC'
             WHEN @ordinamento=2 THEN SET @SQL = @SQL + ' order by codice_prodotto DESC'
             WHEN @ordinamento=4 THEN SET @SQL = @SQL + ' order by prezzo_riv DESC'
    END
    
    --Esecuzione della query 
    EXEC sp_executesql @strSQL
    
    GO
    Potrei aver fatto casino soprattutto con le virgolette , ma il concetto è quello.

    Ciao

  10. #20
    Utente di HTML.it L'avatar di billy1
    Registrato dal
    Jun 2001
    Messaggi
    549

    ma

    mi da' degli errori di sintassi :

    error 156

    incorrect syntax neat the keyword 'case'
    incorrect syntax neat the keyword 'when'
    incorrect syntax neat the keyword 'when'
    incorrect syntax neat the keyword 'when'
    incorrect syntax neat the keyword 'when'
    incorrect syntax neat the keyword 'end'

    must declase the variable @strSQL

    ecco il codice :

    codice:
    CREATE PROCEDURE codici
    /* in input arriva la figura, restituisce tutti i valori associati alla
    figura.
    */
    @figura varchar(50) , @ordinamento varchar(50)
    
    
     AS
      DECLARE @SQL nvarchar(4000)
    
      SET @SQL = 'SELECT b.codice_prodotto, b.prezzo_riv,  b.descrizione_breve, 
       b.descrizione_estesa FROM articoli b 
       WHERE b.fig = ''' + Replace(@figura,'''','''''') + ''' 
      and b.on_line=''yes'''
      
    CASE  WHEN @ordinamento=1 THEN SET @SQL = @SQL +  'order by codice_prodotto ASC'
             WHEN @ordinamento=3 THEN SET @SQL = @SQL + ' order by prezzo_riv ASC'
             WHEN @ordinamento=2 THEN SET @SQL = @SQL + ' order by codice_prodotto DESC'
             WHEN @ordinamento=4 THEN SET @SQL = @SQL + ' order by prezzo_riv DESC'
    END
    
    --Esecuzione della query 
    EXEC sp_executesql @strSQL
    
    GO
    Il fumo fa male a te e agli altri.
    Rispettate chi non vuole respirare il fumo passivo.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.