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
Subquery in sql server
lunedì 27 ottobre 2003 - 11.49
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Marylight
Profilo
| Newbie
33
messaggi | Data Invio:
lun 27 ott 2003 - 11:49
HO una maxy query del tipo:
SELECT An_cognome + ' ' + An_Nome + ' '+ As_Codpers as Dipendente,
(select COUNT(As_codass)
from Anagra , Assenz , Tassen
where As_codpers = An_codpers
and As_codass = Ta_codasse
group by As_codass) ,
(select COUNT(As_codass) from Assenz , Anagra , Tassen
where As_codpers = An_codpers
and As_codass = Ta_codasse
and not (as_dalle is null and as_alle is null)
group by As_codass) ,
(select cast(sum(datediff("n",as_dalle,as_alle))/60 as numeric(3,2))
from Assenz , Anagra , Tassen
where As_codpers = An_codpers
and As_codass = Ta_codasse
and not (as_dalle is null and as_alle is null)
group by As_codass),
(select COUNT(As_codass) from Assenz
where As_codpers = An_codpers
and As_codass = Ta_codasse
and (as_dalle is null and as_alle is null)
group by As_codass)
FROM Tassen INNER JOIN (Assenz INNER JOIN Anagra ON As_codpers = An_codpers) ON Ta_codasse = As_codass
Mi restiruisce il seguente errore:
"La subquery ha restituito più di un valore. Ciò non è consentito per subquery che seguono i caratteri =, !=, <, <= , >, >= o utilizzate come espressione."
Come posso risolverlo??
Grazie
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
lun 27 ott 2003 - 19:11
ciao,
hai provato a fare eseguire una sottoquery soltanto, e vedere quale ti torna + record?
Cmq con le subquery aggiungi delle colonne alla 1a select prendendole da altre tabelle ma devono ritornare comunque 1 riga per volta per "agganciarle" alle altre e creare una tabella risultante.
forse il problema sta nel "group by As_codass" dove vuol dire che ci sono diversi "As_codass" e quindi la sottoquery ti torna piu righe (quindi non riesce a farne 1 record solo insieme alle altre colonne fuori dalla subquery)
Adesso io non sono esperto e non so come sia il tuo db cmq potresti prenderti per esempio il "top 1" delle sottoquery (un salvataggio in corner)
Altrimenti dovresti linkare le sottoquery e fare il group by alla fine in modo che ti faccia le aggregazioni...
ci dovrei pensare come fare pero'! ;-)
ciao intanto...
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 !