Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Query....orizzontale....
lunedì 12 aprile 2010 - 16.51
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
lun 12 apr 2010 - 16:51
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?
dinoxet
Profilo
| Senior Member
484
messaggi | Data Invio:
lun 12 apr 2010 - 17:01
se lo rappresenti con un report potresti :
fare prima di tutto una query dove fai un sum delle ore per societa (considerando la società interna come una di esse),
e poi fare un report di tipo matrice che ti spara le società sulle colonne e le ore sulle righe.
è un idea...
DINOXET
__________________________________________
impossible is only a word
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
lun 12 apr 2010 - 17:12
in che senso come un report?
dinoxet
Profilo
| Senior Member
484
messaggi | Data Invio:
lun 12 apr 2010 - 17:15
come lo devi rappresentare :
report : stampa, pdf, excel, csv....
se usi sql, potresti con visual studio crreare un report (matrice) che con reporting service di sql puoi esportare nel formato che più ti aggrada..
DINOXET
__________________________________________
impossible is only a word
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
lun 12 apr 2010 - 17:22
devo mettere il tutto in un excel....sono in ambiente delphi però...
cmq stavo pensando di utilizzare delel tabelle temporanee....in cui man mano aggiungo/modifico i miei campi....
tipo faccio una queryche mi tira fuori tutto..e lo metto in una tabella temp1... poi calcolo i totali degli interni...e li metto in temp2....quindi vado a prendere tutte le società presenti in temp1 ..faccio le varie somme per società....e le inserisco in temp2..... sperem!
dinoxet
Profilo
| Senior Member
484
messaggi | Data Invio:
lun 12 apr 2010 - 17:26
si delle tabelle temporanee può essere un idea.
ma creane una sola con un tracciata che possa esprimere il massimo delle società che possono intervenire e poii magari crei una routine che lo riempe.
può andare!
DINOXET
__________________________________________
impossible is only a word
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
lun 12 apr 2010 - 17:42
si anche....provo e ti so dire....grazie!
elsinore
Profilo
| Junior Member
191
messaggi | Data Invio:
mar 13 apr 2010 - 09:17
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......
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !