Discussione:
Query di unione query
(troppo vecchio per rispondere)
Express
2005-01-08 17:04:48 UTC
Permalink
Buonasera ai partecipanti, ho la necessità di unire tre query:
ho provato cosi come sotto riportato,

SELECT ALL [dData],[Presenze]
FROM [_AQ_Presenze_Per_Giorno]

UNION ALL SELECT [dData],[lCodicePrestazione],[totalePrezzi:
lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];


ma mi segnala questo errore.

Numero di colonne non corrispondente nelle due tabelle o query selezionate
di una query di unione.

Grazie in anticipo Express
Cinzia
2005-01-08 20:18:33 UTC
Permalink
Post by Express
ho provato cosi come sotto riportato,
SELECT ALL [dData],[Presenze]
FROM [_AQ_Presenze_Per_Giorno]
lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];
ma mi segnala questo errore.
Numero di colonne non corrispondente nelle due tabelle o query selezionate
di una query di unione.
Grazie in anticipo Express
Ciao Express

prova così, ho aggiunto un campo fittizio alla prima query che aveva solo 2
campi mentre le altre ne hanno 3

SELECT [dData],[Presenze], 0 as Importo
FROM [_AQ_Presenze_Per_Giorno]
UNION ALL SELECT [dData],[lCodicePrestazione],[totalePrezzi:
lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];

Saluti
Cinzia
Express
2005-01-08 21:54:34 UTC
Permalink
Post by Cinzia
Post by Express
ho provato cosi come sotto riportato,
SELECT ALL [dData],[Presenze]
FROM [_AQ_Presenze_Per_Giorno]
lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];
ma mi segnala questo errore.
Numero di colonne non corrispondente nelle due tabelle o query selezionate
di una query di unione.
Grazie in anticipo Express
Ciao Express
prova così, ho aggiunto un campo fittizio alla prima query che aveva solo 2
campi mentre le altre ne hanno 3
SELECT [dData],[Presenze], 0 as Importo
FROM [_AQ_Presenze_Per_Giorno]
lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];
Saluti
Cinzia
Grazie, ma non và!!
Mi chiede di:
Immettere valore parametro > Presenze
poi di nuovo
Immettere valore parametro > ICodicePrestazione
poi di nuovo
Immettere valore parametro > TotalePrezzo:
poi di nuovo
Immettere valore parametro > sImportoSpesa

e quindi mi restituisce una query con solo 3 campi
dData; Presenze; Importo

dove solo i record relativi a dData sono popolati, il resto è vuoto

Grazie, confido in tuo consiglio che ci conduca alla risoluzione.

Express
Cinzia
2005-01-09 12:28:09 UTC
Permalink
Post by Express
Post by Cinzia
Post by Express
ho provato cosi come sotto riportato,
SELECT ALL [dData],[Presenze]
FROM [_AQ_Presenze_Per_Giorno]
lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];
ma mi segnala questo errore.
Numero di colonne non corrispondente nelle due tabelle o query selezionate
di una query di unione.
Grazie in anticipo Express
Ciao Express
prova così, ho aggiunto un campo fittizio alla prima query che aveva
solo
Post by Express
Post by Cinzia
2
campi mentre le altre ne hanno 3
SELECT [dData],[Presenze], 0 as Importo
FROM [_AQ_Presenze_Per_Giorno]
lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];
Saluti
Cinzia
Grazie, ma non và!!
Immettere valore parametro > Presenze
poi di nuovo
Immettere valore parametro > ICodicePrestazione
poi di nuovo
poi di nuovo
Immettere valore parametro > sImportoSpesa
e quindi mi restituisce una query con solo 3 campi
dData; Presenze; Importo
dove solo i record relativi a dData sono popolati, il resto è vuoto
Grazie, confido in tuo consiglio che ci conduca alla risoluzione.
Express
Ciao Express,
Se ti chiede di inserire quei dati è perchè non li trova nelle query da cui
gli dici di estrarli per cui sembrerebbe che nella query
[_AQ_Presenze_Per_Giorno] il campo Presenze non c'è oppure si chiama in un
altro modo, lo stesso dicasi per il campo lCodicePrestazione nella query
[_AQ_Incasso_Per_Giorno] e sImportoSpesa nella query _A_Q_Spese_Per_Giorno

Cerca di capire come si chiamano esattamente questi campi nelle query
indicate.
mi viene però un dubbio che tu voglia unire i risultati delle query non in
Verticale come fa la UNION ma in Orizzontale, vuoi cioè ottenere una query
che ti restituisca 9 campi in questo caso la query di unione non va bene
devi fare una normale select dalle tre query unendole sul campo data ....

Ciao
Cinzia
Express
2005-01-09 13:16:42 UTC
Permalink
[CUT]
Post by Cinzia
Cerca di capire come si chiamano esattamente questi campi nelle query
indicate.
mi viene però un dubbio che tu voglia unire i risultati delle query non in
Verticale come fa la UNION ma in Orizzontale, vuoi cioè ottenere una query
che ti restituisca 9 campi in questo caso la query di unione non va bene
E' PROPRIO COSI'...
Post by Cinzia
devi fare una normale select dalle tre query unendole sul campo data ....
Vale a dire??
Post by Cinzia
Ciao
Cinzia
Questi sono i nomi dei campi esatti, difatti avevo scritto (e me ne scuso)
il nome delle etichette che mi restituiva la query.

SELECT ALL [dData],[lCodiceBarreCliente]
FROM [_AQ_Presenze_Per_Giorno]

UNION ALL SELECT
[dData],[lCodicePrestazione],[totalePrezzi:lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];

Ti allego, inoltre l'Sql delle query in oggetto
-----------------------------------------------------------------
_AQ_Presenze_Per_Giorno
-----------------------------------------------------------------
SELECT DISTINCTROW Tb_Prestazioni_Storiche.dData,
Count(Tb_Presenze_Storiche.lCodiceBarreCliente) AS
ConteggioDilCodiceBarreCliente
FROM Tb_Prestazioni_Storiche INNER JOIN Tb_Presenze_Storiche ON
Tb_Prestazioni_Storiche.VisitaID = Tb_Presenze_Storiche.VisitaID
GROUP BY Tb_Prestazioni_Storiche.dData;
-----------------------------------------------------------------
_AQ_Incasso_Per_Giorno
-----------------------------------------------------------------
SELECT DISTINCTROW Tb_Prestazioni_Storiche.dData,
Count(Tb_Prestazioni_Storiche.lCodicePrestazione) AS
ConteggioDilCodicePrestazione,
Sum(Tb_Prestazioni_Storiche.lPrezzoPrestazione) AS totalePrezzi
FROM Tb_Prestazioni_Storiche INNER JOIN Tb_Prestazioni ON
Tb_Prestazioni_Storiche.lCodicePrestazione =
Tb_Prestazioni.lCodiceBarrePrestazione
GROUP BY Tb_Prestazioni_Storiche.dData
ORDER BY Count(Tb_Prestazioni_Storiche.lCodicePrestazione) DESC;
-----------------------------------------------------------------
_AQ_Spese_Per_Giorno
-----------------------------------------------------------------
SELECT DISTINCTROW Tb_Spese_Dettagli.dDataSpesa,
Tb_Spese_Dettagli.sDescrizioneSpesa, Sum(Tb_Spese_Dettagli.sImportoSpesa) AS
SommaDisImportoSpesa
FROM Tb_Spese_Dettagli
GROUP BY Tb_Spese_Dettagli.dDataSpesa, Tb_Spese_Dettagli.sDescrizioneSpesa,
Tb_Spese_Dettagli.CodSpesa
ORDER BY Tb_Spese_Dettagli.sDescrizioneSpesa DESC;
-----------------------------------------------------------------

Buona domenica e buon appetito

Express
Cinzia
2005-01-09 19:21:04 UTC
Permalink
Post by Express
[CUT]
Post by Cinzia
Cerca di capire come si chiamano esattamente questi campi nelle query
indicate.
mi viene però un dubbio che tu voglia unire i risultati delle query non in
Verticale come fa la UNION ma in Orizzontale, vuoi cioè ottenere una query
che ti restituisca 9 campi in questo caso la query di unione non va bene
E' PROPRIO COSI'...
Post by Cinzia
devi fare una normale select dalle tre query unendole sul campo data ....
Vale a dire??
Se sei sicuro che tutte e 3 le query restituiscono sempre tutte le date che
ti interessano la query dovrebbe essere così:

SELECT [_AQ_Presenze_Per_Giorno].dData,
[_AQ_Presenze_Per_Giorno].ConteggioDilCodiceBarreCliente,
[_AQ_Incasso_Per_Giorno].dData,
[_AQ_Incasso_Per_Giorno].ConteggioDilCodicePrestazione,
[_AQ_Incasso_Per_Giorno].totalePrezzi, [_AQ_Spese_Per_Giorno].dDataSpesa,
[_AQ_Spese_Per_Giorno].sDescrizioneSpesa,
[_AQ_Spese_Per_Giorno].SommaDisImportoSpesa
FORM [_AQ_Presenze_Per_Giorno] INNER JOIN [_AQ_Incasso_Per_Giorno]
ON [_AQ_Presenze_Per_Giorno].dData = [_AQ_Incasso_Per_Giorno].dData
INNER JOIN [_AQ_Spese_Per_Giorno] on [_AQ_Presenze_Per_Giorno].dData =
[_AQ_Spese_Per_Giorno].dDataSpesa

se invece una query contiene più data delle altre devi prendere come base
quella e mettere delle LEFT JOIN invece di INNER JOIN
Post by Express
Post by Cinzia
Ciao
Cinzia
Questi sono i nomi dei campi esatti, difatti avevo scritto (e me ne scuso)
il nome delle etichette che mi restituiva la query.
SELECT ALL [dData],[lCodiceBarreCliente]
FROM [_AQ_Presenze_Per_Giorno]
UNION ALL SELECT
[dData],[lCodicePrestazione],[totalePrezzi:lPrezzoPrestazione]
FROM [_AQ_Incasso_Per_Giorno]
UNION ALL SELECT [dDataspesa],[sDescrizioneSpesa],[sImportoSpesa]
FROM [_AQ_Spese_Per_Giorno]
ORDER BY [dData];
Ti allego, inoltre l'Sql delle query in oggetto
-----------------------------------------------------------------
_AQ_Presenze_Per_Giorno
-----------------------------------------------------------------
SELECT DISTINCTROW Tb_Prestazioni_Storiche.dData,
Count(Tb_Presenze_Storiche.lCodiceBarreCliente) AS
ConteggioDilCodiceBarreCliente
FROM Tb_Prestazioni_Storiche INNER JOIN Tb_Presenze_Storiche ON
Tb_Prestazioni_Storiche.VisitaID = Tb_Presenze_Storiche.VisitaID
GROUP BY Tb_Prestazioni_Storiche.dData;
-----------------------------------------------------------------
_AQ_Incasso_Per_Giorno
-----------------------------------------------------------------
SELECT DISTINCTROW Tb_Prestazioni_Storiche.dData,
Count(Tb_Prestazioni_Storiche.lCodicePrestazione) AS
ConteggioDilCodicePrestazione,
Sum(Tb_Prestazioni_Storiche.lPrezzoPrestazione) AS totalePrezzi
FROM Tb_Prestazioni_Storiche INNER JOIN Tb_Prestazioni ON
Tb_Prestazioni_Storiche.lCodicePrestazione =
Tb_Prestazioni.lCodiceBarrePrestazione
GROUP BY Tb_Prestazioni_Storiche.dData
ORDER BY Count(Tb_Prestazioni_Storiche.lCodicePrestazione) DESC;
-----------------------------------------------------------------
_AQ_Spese_Per_Giorno
-----------------------------------------------------------------
SELECT DISTINCTROW Tb_Spese_Dettagli.dDataSpesa,
Tb_Spese_Dettagli.sDescrizioneSpesa, Sum(Tb_Spese_Dettagli.sImportoSpesa) AS
SommaDisImportoSpesa
FROM Tb_Spese_Dettagli
GROUP BY Tb_Spese_Dettagli.dDataSpesa,
Tb_Spese_Dettagli.sDescrizioneSpesa,
Post by Express
Tb_Spese_Dettagli.CodSpesa
ORDER BY Tb_Spese_Dettagli.sDescrizioneSpesa DESC;
-----------------------------------------------------------------
Buona domenica e buon appetito
Grazie
Post by Express
Express
Cinzia
Express
2005-01-09 20:53:00 UTC
Permalink
Post by Cinzia
Post by Express
[CUT]
Post by Cinzia
Cerca di capire come si chiamano esattamente questi campi nelle query
indicate.
mi viene però un dubbio che tu voglia unire i risultati delle query non
in
Post by Express
Post by Cinzia
Verticale come fa la UNION ma in Orizzontale, vuoi cioè ottenere una
query
Post by Express
Post by Cinzia
che ti restituisca 9 campi in questo caso la query di unione non va bene
E' PROPRIO COSI'...
Post by Cinzia
devi fare una normale select dalle tre query unendole sul campo data
....
Post by Express
Vale a dire??
Se sei sicuro che tutte e 3 le query restituiscono sempre tutte le date che
SELECT [_AQ_Presenze_Per_Giorno].dData,
[_AQ_Presenze_Per_Giorno].ConteggioDilCodiceBarreCliente,
[_AQ_Incasso_Per_Giorno].dData,
[_AQ_Incasso_Per_Giorno].ConteggioDilCodicePrestazione,
[_AQ_Incasso_Per_Giorno].totalePrezzi, [_AQ_Spese_Per_Giorno].dDataSpesa,
[_AQ_Spese_Per_Giorno].sDescrizioneSpesa,
[_AQ_Spese_Per_Giorno].SommaDisImportoSpesa
FORM [_AQ_Presenze_Per_Giorno] INNER JOIN [_AQ_Incasso_Per_Giorno]
...VORRAI DIRE .. FROM [_AQ_Presenze_Per_Giorno] INNER JOIN
[_AQ_Incasso_Per_Giorno]
Post by Cinzia
ON [_AQ_Presenze_Per_Giorno].dData = [_AQ_Incasso_Per_Giorno].dData
INNER JOIN [_AQ_Spese_Per_Giorno] on [_AQ_Presenze_Per_Giorno].dData =
[_AQ_Spese_Per_Giorno].dDataSpesa
se invece una query contiene più data delle altre devi prendere come base
quella e mettere delle LEFT JOIN invece di INNER JOIN
Per l'esattezza la query delle spese, mi potrà restituire un record con una
data in cui non vi sono incassi, cosi nella data in cui mi vengono
restituite delle presenze presenze, non vi sono spese.
Spero di essermi spiegato.
Anche se correggo (o meno) quanto sopra segnalato FORM in FROM,
quando vado a salvare le modifiche della query, mi segnala
Errore di sintassi (operatore mancante) nell'espressione della query
[_AQ_Spese_Per_Giorno].SommaDisImportoSpesa
FORM [_AQ_Presenze_Per_Giorno] INNER JOIN [_AQ_Incasso_Per_Giorno]
[_AQ_Incasso_Per_Giorno]
ON [_AQ_Presenze_Per_Giorno].dData = [_AQ_Incasso_Per_Giorno].dData
INNER JOIN [_AQ_Spese_Per_Giorno] on [_AQ_Presenze_Per_Giorno].dData =

Express
Cinzia
2005-01-10 08:06:33 UTC
Permalink
Post by Express
Post by Cinzia
Post by Express
[CUT]
Post by Cinzia
Cerca di capire come si chiamano esattamente questi campi nelle query
indicate.
mi viene però un dubbio che tu voglia unire i risultati delle query non
in
Post by Express
Post by Cinzia
Verticale come fa la UNION ma in Orizzontale, vuoi cioè ottenere una
query
Post by Express
Post by Cinzia
che ti restituisca 9 campi in questo caso la query di unione non va bene
E' PROPRIO COSI'...
Post by Cinzia
devi fare una normale select dalle tre query unendole sul campo data
....
Post by Express
Vale a dire??
Se sei sicuro che tutte e 3 le query restituiscono sempre tutte le date che
SELECT [_AQ_Presenze_Per_Giorno].dData,
[_AQ_Presenze_Per_Giorno].ConteggioDilCodiceBarreCliente,
[_AQ_Incasso_Per_Giorno].dData,
[_AQ_Incasso_Per_Giorno].ConteggioDilCodicePrestazione,
[_AQ_Incasso_Per_Giorno].totalePrezzi,
[_AQ_Spese_Per_Giorno].dDataSpesa,
Post by Express
Post by Cinzia
[_AQ_Spese_Per_Giorno].sDescrizioneSpesa,
[_AQ_Spese_Per_Giorno].SommaDisImportoSpesa
FORM [_AQ_Presenze_Per_Giorno] INNER JOIN [_AQ_Incasso_Per_Giorno]
...VORRAI DIRE .. FROM [_AQ_Presenze_Per_Giorno] INNER JOIN
[_AQ_Incasso_Per_Giorno]
si ovvio
Post by Express
Post by Cinzia
ON [_AQ_Presenze_Per_Giorno].dData = [_AQ_Incasso_Per_Giorno].dData
INNER JOIN [_AQ_Spese_Per_Giorno] on [_AQ_Presenze_Per_Giorno].dData =
[_AQ_Spese_Per_Giorno].dDataSpesa
se invece una query contiene più data delle altre devi prendere come base
quella e mettere delle LEFT JOIN invece di INNER JOIN
Per l'esattezza la query delle spese, mi potrà restituire un record con una
data in cui non vi sono incassi, cosi nella data in cui mi vengono
restituite delle presenze presenze, non vi sono spese.
Spero di essermi spiegato.
Anche se correggo (o meno) quanto sopra segnalato FORM in FROM,
quando vado a salvare le modifiche della query, mi segnala
Errore di sintassi (operatore mancante) nell'espressione della query
[_AQ_Spese_Per_Giorno].SommaDisImportoSpesa
FORM [_AQ_Presenze_Per_Giorno] INNER JOIN [_AQ_Incasso_Per_Giorno]
[_AQ_Incasso_Per_Giorno]
ON [_AQ_Presenze_Per_Giorno].dData = [_AQ_Incasso_Per_Giorno].dData
INNER JOIN [_AQ_Spese_Per_Giorno] on [_AQ_Presenze_Per_Giorno].dData =
Express
Bene, usiamo Query Builder e facciamo prima:
Nuova Query
Selezioni le tre query [_AQ_Presenze_Per_Giorno] , [_AQ_Incasso_Per_Giorno]
e [_AQ_Spese_Per_Giorno]

poi prendi dData dalla tabella presenze e la trascini su dData di Incasso,
prendi di nuovo dData di presenze e la trascini su Spese
adesso clicchi con il destro su ciascuna riga di collegamento selezioni
proprietà e tra le tre opzioni proposte selezioni la seconda.
Trascini poi i tuoi 9 campi dalle tabelle nella griglia sottostante e
dovremmo esserci...
Cinzia
Express
2005-01-10 09:27:05 UTC
Permalink
CUT
Post by Cinzia
Nuova Query
Selezioni le tre query [_AQ_Presenze_Per_Giorno] ,
[_AQ_Incasso_Per_Giorno]
e [_AQ_Spese_Per_Giorno]
poi prendi dData dalla tabella presenze e la trascini su dData di Incasso,
prendi di nuovo dData di presenze e la trascini su Spese
adesso clicchi con il destro su ciascuna riga di collegamento selezioni
proprietà e tra le tre opzioni proposte selezioni la seconda.
Trascini poi i tuoi 9 campi dalle tabelle nella griglia sottostante e
dovremmo esserci...
Cinzia
Mi sa che ci stiamo avvicinando, però in questo modo,
se in una data non ho presenze, non mi risulta nemmeno
il record delle spese, relativo a quella data.
Mi viene da pensare che, prendiamo ad esempio le spese,
se inserisco nella tabella anche la data dei giorni in cui non sostengo
spese,
ed impostando il procedimento sulla query delle spese
(come prima suggerito da te)
avrei la restituzione di tutte le date del mese, e di conseguenza
anche per gli incassi e le presenze.
Ma certamente non è questo il modo di risolvere il problema.

Saluti Express
Cinzia
2005-01-10 10:10:08 UTC
Permalink
Post by Express
CUT
Post by Cinzia
Nuova Query
Selezioni le tre query [_AQ_Presenze_Per_Giorno] ,
[_AQ_Incasso_Per_Giorno]
e [_AQ_Spese_Per_Giorno]
poi prendi dData dalla tabella presenze e la trascini su dData di Incasso,
prendi di nuovo dData di presenze e la trascini su Spese
adesso clicchi con il destro su ciascuna riga di collegamento selezioni
proprietà e tra le tre opzioni proposte selezioni la seconda.
Trascini poi i tuoi 9 campi dalle tabelle nella griglia sottostante e
dovremmo esserci...
Cinzia
Mi sa che ci stiamo avvicinando, però in questo modo,
se in una data non ho presenze, non mi risulta nemmeno
il record delle spese, relativo a quella data.
Mi viene da pensare che, prendiamo ad esempio le spese,
se inserisco nella tabella anche la data dei giorni in cui non sostengo
spese,
ed impostando il procedimento sulla query delle spese
(come prima suggerito da te)
avrei la restituzione di tutte le date del mese, e di conseguenza
anche per gli incassi e le presenze.
Ma certamente non è questo il modo di risolvere il problema.
Saluti Express
Già era quello il problema che avevo cercato di spiegare!
L'unica soluzione che mi viene in mente è di ritornare alla query di UNION
mettendo dei campi fittizzi su ciascuna query in modo da ottenere sempre
otto campi
Prova a vedere cosa viene fuori così:
Attento ai nomi dei campi potrebbero non essere completamente corretti...

SELECT [dData],[ConteggioDilCodiceBarreCliente], ' ' as prestazione, 0 as
prezzoPrestazione, ' ' as DescrizioneSpesa, 0 as ImportoSpesa
FROM [_AQ_Presenze_Per_Giorno]
UNION ALL SELECT [dDataspesa], ' ' as ConteggioDilCodiceBarreCliente, ' '
as prestazione, 0 as prezzoPrestazione,
[sDescrizioneSpesa],[SommaDisImportoSpesa] FROM [_AQ_Spese_Per_Giorno]
UNION ALL SELECT
[dData],' ' as ConteggioDilCodiceBarreCliente,
[ConteggioDilCodicePrestazione],[totalePrezzi], ' ' as DescrizioneSpesa, 0
as ImportoSpesa
FROM [_AQ_Incasso_Per_Giorno]
ORDER BY [dData];

Ciao
Cinzia
Express
2005-01-10 10:46:42 UTC
Permalink
Post by Cinzia
Post by Express
CUT
Post by Cinzia
Nuova Query
Selezioni le tre query [_AQ_Presenze_Per_Giorno] ,
[_AQ_Incasso_Per_Giorno]
e [_AQ_Spese_Per_Giorno]
poi prendi dData dalla tabella presenze e la trascini su dData di
Incasso,
Post by Express
Post by Cinzia
prendi di nuovo dData di presenze e la trascini su Spese
adesso clicchi con il destro su ciascuna riga di collegamento selezioni
proprietà e tra le tre opzioni proposte selezioni la seconda.
Trascini poi i tuoi 9 campi dalle tabelle nella griglia sottostante e
dovremmo esserci...
Cinzia
Mi sa che ci stiamo avvicinando, però in questo modo,
se in una data non ho presenze, non mi risulta nemmeno
il record delle spese, relativo a quella data.
Mi viene da pensare che, prendiamo ad esempio le spese,
se inserisco nella tabella anche la data dei giorni in cui non sostengo
spese,
ed impostando il procedimento sulla query delle spese
(come prima suggerito da te)
avrei la restituzione di tutte le date del mese, e di conseguenza
anche per gli incassi e le presenze.
Ma certamente non è questo il modo di risolvere il problema.
Saluti Express
Già era quello il problema che avevo cercato di spiegare!
L'unica soluzione che mi viene in mente è di ritornare alla query di UNION
mettendo dei campi fittizzi su ciascuna query in modo da ottenere sempre
otto campi
Attento ai nomi dei campi potrebbero non essere completamente corretti...
SELECT [dData],[ConteggioDilCodiceBarreCliente], ' ' as prestazione, 0 as
prezzoPrestazione, ' ' as DescrizioneSpesa, 0 as ImportoSpesa
FROM [_AQ_Presenze_Per_Giorno]
UNION ALL SELECT [dDataspesa], ' ' as ConteggioDilCodiceBarreCliente, ' '
as prestazione, 0 as prezzoPrestazione,
[sDescrizioneSpesa],[SommaDisImportoSpesa] FROM [_AQ_Spese_Per_Giorno]
UNION ALL SELECT
[dData],' ' as ConteggioDilCodiceBarreCliente,
[ConteggioDilCodicePrestazione],[totalePrezzi], ' ' as DescrizioneSpesa, 0
as ImportoSpesa
FROM [_AQ_Incasso_Per_Giorno]
ORDER BY [dData];
Ciao
Cinzia
Adeeso mi restituisce due-tre record per ogni data, vale a dire,
uno per le presenze, uno per le spese, uno per gli incassi

Express
Cinzia
2005-01-10 21:04:08 UTC
Permalink
Post by Express
Post by Cinzia
Post by Express
CUT
Post by Cinzia
Nuova Query
Selezioni le tre query [_AQ_Presenze_Per_Giorno] ,
[_AQ_Incasso_Per_Giorno]
e [_AQ_Spese_Per_Giorno]
poi prendi dData dalla tabella presenze e la trascini su dData di
Incasso,
Post by Express
Post by Cinzia
prendi di nuovo dData di presenze e la trascini su Spese
adesso clicchi con il destro su ciascuna riga di collegamento selezioni
proprietà e tra le tre opzioni proposte selezioni la seconda.
Trascini poi i tuoi 9 campi dalle tabelle nella griglia sottostante e
dovremmo esserci...
Cinzia
Mi sa che ci stiamo avvicinando, però in questo modo,
se in una data non ho presenze, non mi risulta nemmeno
il record delle spese, relativo a quella data.
Mi viene da pensare che, prendiamo ad esempio le spese,
se inserisco nella tabella anche la data dei giorni in cui non sostengo
spese,
ed impostando il procedimento sulla query delle spese
(come prima suggerito da te)
avrei la restituzione di tutte le date del mese, e di conseguenza
anche per gli incassi e le presenze.
Ma certamente non è questo il modo di risolvere il problema.
Saluti Express
Già era quello il problema che avevo cercato di spiegare!
L'unica soluzione che mi viene in mente è di ritornare alla query di UNION
mettendo dei campi fittizzi su ciascuna query in modo da ottenere sempre
otto campi
Attento ai nomi dei campi potrebbero non essere completamente corretti...
SELECT [dData],[ConteggioDilCodiceBarreCliente], ' ' as prestazione, 0 as
prezzoPrestazione, ' ' as DescrizioneSpesa, 0 as ImportoSpesa
FROM [_AQ_Presenze_Per_Giorno]
UNION ALL SELECT [dDataspesa], ' ' as ConteggioDilCodiceBarreCliente, ' '
as prestazione, 0 as prezzoPrestazione,
[sDescrizioneSpesa],[SommaDisImportoSpesa] FROM [_AQ_Spese_Per_Giorno]
UNION ALL SELECT
[dData],' ' as ConteggioDilCodiceBarreCliente,
[ConteggioDilCodicePrestazione],[totalePrezzi], ' ' as DescrizioneSpesa, 0
as ImportoSpesa
FROM [_AQ_Incasso_Per_Giorno]
ORDER BY [dData];
Ciao
Cinzia
Adeeso mi restituisce due-tre record per ogni data, vale a dire,
uno per le presenze, uno per le spese, uno per gli incassi
Express
Bene, forse quasi ci siamo:
l'idea è questa: dalla query di unione ricaviamo tutte le date distinte che
ci interessano per cui potremmo rivedere la query di unione in modo tale da
ricavare solo le date: diciamo che la chiamiamo qry_tutteLeDate
SELECT [dData] FROM [_AQ_Presenze_Per_Giorno]
UNION SELECT [dDataspesa] FROM [_AQ_Spese_Per_Giorno]
UNION SELECT [dData] FROM [_AQ_Incasso_Per_Giorno]
ORDER BY [dData];

Adessso
Nuova query
Aggiungiamo qry_tutteLeDate, [_AQ_Presenze_Per_Giorno] ,
[_AQ_Spese_Per_Giorno] e [_AQ_Incasso_Per_Giorno]

Trasciniamo il campo dData da qry_tutteLeDate, sul corrispondente campo
data delle altre tabelle,
tasto destro sui 3 collegamenti - Proprietà - 2a opzione
Trasciniamo i campi che ci interessano nella griglia...

Fammi sapere se ci siamo riusciti!
Cinzia
Express
2005-01-10 21:36:36 UTC
Permalink
CUT...
Post by Cinzia
Fammi sapere se ci siamo riusciti!
Cinzia
provo subito e ti faccio sapere
Express
Express
2005-01-10 21:58:55 UTC
Permalink
Post by Cinzia
Fammi sapere se ci siamo riusciti!
Cinzia
GRANDE CINZIA!!!!
E' FATTA.

Saluti Express

Loading...