Subquery in sql server

lunedì 27 ottobre 2003 - 11.49

Marylight Profilo | Newbie

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

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...
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