|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 114
|
Problema con una query
Questo che segue è il codice SQL di una query a campi incrociati fatta in access:
TRANSFORM Count(Appuntamenti.EsitoTelf) AS ConteggioDiEsitoTelf SELECT Elenco_Utenti.Cognome FROM Elenco_Utenti INNER JOIN Appuntamenti ON Elenco_Utenti.NomeUtente = Appuntamenti.NomeUtente GROUP BY Elenco_Utenti.Cognome PIVOT Appuntamenti.EsitoTelf; Questa query mi conta quante volte appare in un campo una determinata stringa, puo' accadere che tale stringa non ci sia e quindi il risultato della query mi da un campo vuoto. come faccio a far comparire uno 0 nel caso il conteggiuo risulti nullo? vi ringrazio anticipatamente lo scoppato |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
(SELECT Elenco_Utenti.Cognome, 0 As ConteggioDiEsitoTelf
FROM Elenco_Utenti WHERE Elenco_Utenti.Cognome NOT IN (SELECT Elenco_Utenti.Cognome FROM Elenco_Utenti INNER JOIN Appuntamenti ON Elenco_Utenti.NomeUtente = Appuntamenti.NomeUtente GROUP BY Elenco_Utenti.Cognome HAVING Count(Appuntamenti.EsitoTelf) > 0) UNION (TRANSFORM Count(Appuntamenti.EsitoTelf) AS ConteggioDiEsitoTelf SELECT Elenco_Utenti.Cognome FROM Elenco_Utenti INNER JOIN Appuntamenti ON Elenco_Utenti.NomeUtente = Appuntamenti.NomeUtente GROUP BY Elenco_Utenti.Cognome PIVOT Appuntamenti.EsitoTelf); Prova così |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2001
Messaggi: 114
|
ciao cionci!
ho provato a usare il tuo codice in access, ma non funziona! access mi da' il seguente errore: Impossibile usare il campo incrociato di una colonna non fissa come sotto query. dove sbaglio? ...sei sempre disponibile!!!!! grazie! |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ah caspita aspetta...lo statement trasform non l'avevo mai usato...
Faccio qualche prova e ti faccio sapere... Ah...non è che mi passeresti il db...almeno non ho bisogno di rifarmelo ? |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Il massimo che ho potuto fare è questo...
Ti devi fare due query separate perchè non sono riuscito a mettere le query insieme (dava errori strani)... Query1 : TRANSFORM Count([EsitoTelf]) AS ConteggioDiEsitoTelf SELECT [Elenco_Utenti].[Cognome] FROM Query2 GROUP BY [Elenco_Utenti].[Cognome] PIVOT [Appuntamenti].[EsitoTelf]; Query2 : (SELECT [Elenco_Utenti].[Cognome], [Appuntamenti].[EsitoTelf] FROM Elenco_Utenti INNER JOIN Appuntamenti ON [Elenco_Utenti].[NomeUtente]=[Appuntamenti].[NomeUtente]) UNION ALL (SELECT [Elenco_Utenti].[Cognome], "NoAppuntamenti" As EsitoTelf FROM Elenco_Utenti WHERE [Elenco_Utenti].[Cognome] NOT IN (SELECT [Elenco_Utenti].[Cognome] FROM Elenco_Utenti INNER JOIN Appuntamenti ON [Elenco_Utenti].[NomeUtente]=[Appuntamenti].[NomeUtente])); In pratica mette un nuovo campo chiamato NoAppuntamenti e ci mette il valore 1 se la persona non è ha mai avuto un appuntamento... |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:17.



















