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
Problema con le subquery
lunedì 01 settembre 2008 - 23.25
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
fabionik2004
Profilo
| Newbie
15
messaggi | Data Invio:
lun 1 set 2008 - 23:25
Salve a tutti ho un problema con una query nidificata e la ricopio qui di seguito in modo che possiate capire:
SELECT RagSociale, Count(*) AS NumFatture, Sum(FattureVendite.['Imponibile']) AS Imponibile, Sum(FattureVendite.['Sconto']) AS Sconto, Sum(FattureVendite.TotFattura) AS TotFatture, Sum(FattureVendite.Incasso) AS IncassoInFattura, (SELECT SUM(Incasso) FROM Incassi WHERE CodCliente=[Inserire CodCliente]) AS IncassoFuoriFattura, Sum(NZ([FattureVendite].[Omaggio])) AS Omaggi, (Sum (FattureVendite.TotFattura)) - (Sum (FattureVendite.Incasso))-(SELECT SUM (Incasso) FROM Incassi WHERE CodCliente=[Inserire CodCliente]) AS Sospesi
FROM FattureVendite, Clienti
WHERE (((FattureVendite.CodCliente)=[Inserire CodCliente])) AND Clienti.CodCliente=FattureVendite.CodCliente
GROUP BY ([FattureVendite.CodCliente]), RagSociale;
Il problema sta nel fatto che se Incassi.Incasso è =0 le righe IncassoFuoriFattura e Sospesi mi rimangono vuote. Ho provato a utilizzare NZ come ho fatto anche per gli omaggi ma non funziona evidentemente perchè si tratta di subquery. Potreste aiutarmi????
aabruzzese
Profilo
| Junior Member
89
messaggi | Data Invio:
mar 2 set 2008 - 01:04
provi questo:
(SELECT SUM((Nz(Incasso),0)) FROM Incassi
Angelo Abruzzese
fabionik2004
Profilo
| Newbie
15
messaggi | Data Invio:
mar 2 set 2008 - 01:07
ma così mi calcola la somma di tutti gli incassi e non quella di un determinato cliente
aabruzzese
Profilo
| Junior Member
89
messaggi | Data Invio:
mar 2 set 2008 - 07:51
Volevo dire questo:
(SELECT SUM((Nz(Incasso),0)) FROM Incassi WHERE CodCliente=[Inserire CodCliente]) AS IncassoFuoriFattura
Angelo Abruzzese
fabionik2004
Profilo
| Newbie
15
messaggi | Data Invio:
mar 2 set 2008 - 18:10
Infatti avevo provato questo metodo come ho fatto con Omaggi ma è molto strano perchè non funziona. Se Incassi.Incasso è vuoto mi restituisce sempre la riga vuota anche nei sospesi, mentre se c'è qualche incasso funziona correttamente anche coi sospesi. Cmq ho appena provato come mi hai detto tu e mi segnala errore di sintassi. Ma perchè diavolo non funziona???
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
mer 3 set 2008 - 12:35
invece di usare NZ prova con isnull([nome campo],0)
fabionik2004
Profilo
| Newbie
15
messaggi | Data Invio:
gio 4 set 2008 - 02:51
Ho provato anche quella ma niente...
squilibrium
Profilo
| Junior Member
168
messaggi | Data Invio:
gio 4 set 2008 - 09:40
Strano
Secondo quanto ho capito la query dovrebbe essere così:
SELECT RagSociale, Count(*) AS NumFatture, Sum(FattureVendite.['Imponibile']) AS Imponibile, Sum(FattureVendite.['Sconto']) AS Sconto, Sum(FattureVendite.TotFattura) AS TotFatture, Sum(FattureVendite.Incasso) AS IncassoInFattura, (SELECT isnull(SUM(Incasso),0) FROM Incassi WHERE CodCliente=[Inserire CodCliente]) AS IncassoFuoriFattura, Sum(NZ([FattureVendite].[Omaggio])) AS Omaggi, (Sum (FattureVendite.TotFattura)) - (isnull(Sum (FattureVendite.Incasso),0))-(SELECT isnull(SUM (Incasso),0) FROM Incassi WHERE CodCliente=[Inserire CodCliente]) AS Sospesi
FROM FattureVendite, Clienti
WHERE (((FattureVendite.CodCliente)=[Inserire CodCliente])) AND Clienti.CodCliente=FattureVendite.CodCliente
GROUP BY ([FattureVendite.CodCliente]), RagSociale;
aabruzzese
Profilo
| Junior Member
89
messaggi | Data Invio:
gio 4 set 2008 - 16:29
Perche non mi mandi la schema dellla dB e faro qualche prove.
:)
Angelo Abruzzese
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 !