Query di Query

sabato 24 gennaio 2004 - 14.26

Trinità Profilo | Junior Member

Un problema specifico di SQL utilizzando SQL Server 2000.
E' possibile fare una query di query, magari utilizzando una stored procedure ?
mi spiego meglio

ho una prima query (per la verità + complessa di quella che scrivo adesso...)

SELECT sum(valore1-valore2) as val, id, altro dato
FROM ...
WHERE ...

UNION

SELECT sum(valore1- param_stored1) as val, id, altro dato
FROM ...
WHERE ...

UNION

SELECT sum(param_stored2- valore1) as val, id, altro dato
FROM ...
WHERE ...

utilizzando parametri per la mia stored (param_stored2 e param_stored1) e utilizzando diversi condizioni di where ottengo da tutta la query sopra ad esempio un risultato come quesTo

id val
1 15
2 13
3 25
8 10
9 10
9 12
9 33
10 14

a questo punto dato il risultato a mè servirebbe su questo eseguirvi ancora una query( sum (val), id group by id ) così da ottenere

id val
1 15
2 13
3 25
8 10
9 55
10 14

si può fare ?

freeteo Profilo | Guru

ciao,
puoi farlo tranquillamente mettendo tutte le query di union in una parentesi e prima della parentesi metti una query tipo:

select sum(miovalore) from
(
select sum(miovalore) from tabella1 union all
select sum(miovalore) from tabella2
)

etc...
capito come? si chiamano subquery e funzionano molto bene (controlla con sql che magari vuole che il contenuto della sottoquery finisca con un "as nometabellainventatodame"...).
io di stored procedure non sono un esperto ma penso sia facile da implementare qualcosa del genere...

Trinità Profilo | Junior Member

corretto ! ho fatto come dici e funziona

SELECT SUM(assenze) AS assenze, id_ospi FROM (

mia query

) AS pippo
GROUP BY id_ospi

grazie !

iarrub Profilo | Newbie

Scusate se mi intrometto...io non sono molto esperto..maho capito che il mio problema è molto simile

se ho un database con situazioni aziendali ordinate per data, come faccio a dire alla query prendimi solo l'ultima situazione dell'azienda?

mi spiego meglio:

es:
azienda XXXX n° dipendenti
al 30/01/04 n° 57
al 25/03/04 n° 60
al 12/07/04 n° 80

come faccio a filtrare la mia query dicendogli prendimi di questa ditta la situazione più recente presente in archivio?

potete rispondermi con procedure non complicatissime?
vi ringrazio Luciano

Trinità Profilo | Junior Member

non capivo se ero sulla discussione vecchia o cosa... ti ho risposto "dall'altra parte"
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5