Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [SQL Server] Query... un pò complessa

    Ciao a tutti, io avrei la necessità di estrapoalre dei dati da una vista in per poi rappresentarli in un certo modo.....

    La vista, che si chiama EXPORT, mi produce questi dati:

    CODICE-------ORE-------TIPO-------SOCIETA'

    XXX123-------4.00-------esterno------SOC1
    XXX123-------3.00-------interno-------NULL
    XXX123-------77.00------esterno------SOC2
    XXX123-------3.00-------interno-------NULL

    ed io avrei bisogno di rappresentarli in questo modo

    CODICE-------TOT_ORE_INTERNE-------SOC1-------SOC2-------TOT_ORE_ESTERNE'

    XXX123-------6.00-----------------------4-----------77----------81


    cioè per le ore interne...non ho problemi...il tutto si sviluppa in verticale.....ma per le esterne...che variano a seconda della società...e si sviluppano in orizzontale... come posso fare? io per ora ho fatto così..

    select top 1 user_code as CDC, code_prefix AS SEDE_TECNICA,
    (select sum(ORE) from export WHERE CODICE ='XXX123' and tipo = 'interno') as TOT_ORE_INTERNE,
    (select sum(ORE) from export WHERE CODICE ='XXX123' and tipo = 'esterno') as TOT_ORE_ESTERNE,
    FROM export WHERE CODICE ='XXX123'

    ma ovviamente il risultato è questo:

    CODICE-------TOT_ORE_INTERNE-------TOT_ORE_ESTERNE'

    XXX123-------6.00---------------------81

    qualcuno sa darmi qualche dritta?

  2. #2
    elsa, queste elaborazioni variano molto in base al db utilizzato. perché non vi sforzate un po', leggendo e rispettando il regolamento?

  3. #3
    con sql server - da 2005 in poi - puoi usare l'istruzione PIVOT, però devi sapere già da prima quante colonne avrai

  4. #4
    putroppo non lo posso sapere quante colonne avrò.... :-(

    stavo pensando di usare delle tabelle di appoggio e di fare il tutto in più query....

  5. #5
    allora devi per forza fare una SP, usando una tabella temporanea a cui aggiungerai tante colonne quante sono le società esterne, e poi vai di insert

  6. #6
    sto incontrando qualche difficoltà.....mmmm...

    io ho creato la mia tabellona temporanea con il massimo delle società possibili (per ora 3)...

    CREATE TABLE ##ExpTot
    (
    CDC varchar(100),
    SEDE_TECNICA varchar(100),
    MAN_INT varchar(100),
    MAN_EST varchar(250),
    SOC1 varchar(250),
    SOC2 varchar(250),
    SOC3 varchar(250)
    )

    ora faccio la prima query.....e vorre inserire il risultato dentro la tabella temporanea appena creata....ma come faccio?

    la query è questa

    select top 1 user_code as CDC,
    code_prefix AS SEDE_TECNICA,
    (select sum(real_con_length) from export_ore WHERE CODE_PREFIX like 'H/CL/DI%' and tipo_op = 'interno'
    AND CONVERT(datetime, REPLACE(DATA_AVANZAMENTO, '.', ':'), 3)
    between (CAST('04/12/2010 01:00:00.000' as datetime)) and (CAST('04/12/2010 23:59:00.000' as datetime))
    ) as Man_Int,
    (select sum(real_con_length) from export_ore WHERE CODE_PREFIX like 'H/CL/DI%' and tipo_op = 'esterno'
    AND CONVERT(datetime, REPLACE(DATA_AVANZAMENTO, '.', ':'), 3)
    between (CAST('04/12/2010 01:00:00.000' as datetime)) and (CAST('04/12/2010 23:59:00.000' as datetime))
    ) as Man_Est
    FROM export_ore WHERE CODE_PREFIX like 'H/CL/DI%'
    AND CONVERT(datetime, REPLACE(DATA_AVANZAMENTO, '.', ':'), 3)
    between (CAST('04/12/2010 01:00:00.000' as datetime)) and (CAST('04/12/2010 23:59:00.000' as datetime))

    vorrei andare ad inserire nella tabella temporanea i valori per le colonne
    CDC
    SEDE_TECNICA
    MAN_INT
    MAN_EST

    le società poi le inserisco dopo......

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.