+ Rispondi al messaggio
Pagina 2 di 2 primaprima 12
Visualizzazione dei risultati da 11 a 12 su 12

MSSQL Problema conversione tipi

  1. #11
    Sgrubak ora è in linea Scribacchino
    Quote Originariamente inviato da sspintux Visualizza il messaggio
    sp_ExecuteSql è utile per costruire una query dinamicamente
    Infatti! Pensavo ad una cosa tipo:
    Declare @a as nvarchar(100)
    Declare @b as nvarchar(20)
    Declare @c as nvarchar(300)
    Declare @sql as nvarchar(max)
    
    Set @a = N'insert into ordiniattuali(cdarst,quantita) select cdarst, '
    Set @b = N'QO' + Format(@currentmonth, '00') + N'ST'
    Set @c = N' from STGA000F 
    			left join mgart00f on STGA000F.cdarst = mgart00f.cdarma  
    			left join coan100f on STGA000F.cdarst = coan100f.cdarcc   
    			where annost =  @currentyear and mgart00f.cla5ma in (''12'',''40'')  
    			and nrfocc = ''03'' and timost in(01,07)'
    
    Set @sql = @a + @b + @c
    
    EXEC sp_executesql @sql
    
    Certo che se son solo i 12 mesi, molto meglio il Case.

  2. #12
    L'avatar di sspintux
    sspintux non è in linea Very Important Person Ultimo blog: SqlServer express e connessione DAC
    [QUOTE=Sgrubak;378288]Infatti! Pensavo ad una cosa tipo:
    ...
    [/CODE]
    Certo che si può aggiungendo il ciclo while sui 12 mesi
    ... ma personalmente in genere preferisco senza ciclo tipo così:
    use tempdb
    go
    
    -- creo dati di prova
    if OBJECT_ID('dbo.Test') is not null
    drop table dbo.Test 
    go
    
    create table dbo.Test(
      ID int 
     ,C01 varchar(20) 
     ,C02 varchar(20) 
     ,C03 varchar(20) 
     ,C04 varchar(20) 
     ,C05 varchar(20) 
     )
    
    insert into dbo.Test 
    values(1,'C01-1','C02-1','C03-1','C04-1','C05-1')
         ,(2,'C01-2','C02-2','C03-2','C04-2','C05-2')
         ,(3,'C01-3','C02-3','C03-3','C04-3','C05-3')
    
    -- vedo
    select * from dbo.test
    
    ------------------------------
    
    -- tabella di numeri sequenziali che potrebbe anche essere simulata in altri modi
    declare @tNumSeq  table (N integer)
    insert into @tNumSeq values(1),(2),(3),(4),(5)
    
    select 
     T.ID
    ,case S.N
    	when 1 then T.C01
    	when 2 then T.C02
    	when 3 then T.C03
    	when 4 then T.C04
    	when 5 then T.C05
    end as CXX
    from
    dbo.Test T cross join @tNumSeq S
    order by T.ID
    
    ℹ️ Leggi di più su sspintux ...

+ Rispondi al messaggio
Pagina 2 di 2 primaprima 12

Potrebbero interessarti anche ...

  1. Risposte: 2
    Ultimo Post: 02-11-2013, 16:31
  2. [MsSQL]Informazioni conversione datetime sql server 2005
    Da papy2 nel forum Microsoft SQL Server
    Risposte: 1
    Ultimo Post: 25-07-2010, 17:51
  3. Conversione di tipi
    Da semiconductor nel forum Delphi
    Risposte: 8
    Ultimo Post: 14-11-2008, 11:46
  4. [MsSQL]Conversione da Jet a SQL
    Da cippalippa nel forum Microsoft SQL Server
    Risposte: 3
    Ultimo Post: 30-11-2006, 12:07
  5. [MsSQL]Conversione simile a InStr con ProperCase (VB6) in SQL Server
    Da luciano.net nel forum Microsoft SQL Server
    Risposte: 1
    Ultimo Post: 02-05-2006, 07:57