Newsgroup: it.comp.appl.access
Titolo: Come costruire report a 'colonne variabili' ???

Allora, devo creare una stampa per visualizzare i prezzi degli articoli
Tabella ARTICOLI, e tabella PREZZI
Dentro la PREZZI la riga tipo e' Codice Articolo, Listino, Prezzo
Quindi lo stesso articolo puo' avere da zero a tanti prezzi, ogni prezzo in 
corrispondenza di un listino diverso
Essendo in una chiave univoca non possono esistere due prezzi per lo stesso 
listino dello stesso articolo
Ora, dal gestionale l'operatore deve poter avviare la stampa scegliendo i 
listini da visualizzare
La query che fa questo e' la seguente:
--------------------------------------
TRANSFORM Sum(PREZZI.PREZZO) AS SommaDiPREZZO
SELECT ARTICOLI.CODICE_INTERNO, ARTICOLI.DESCRIZIONE
FROM ARTICOLI LEFT JOIN PREZZI ON ARTICOLI.CODICE_INTERNO = 
PREZZI.CODICE_ARTICOLO
WHERE (((PREZZI.CODICE_LISTINO)=0 Or (PREZZI.CODICE_LISTINO)=1 Or 
(PREZZI.CODICE_LISTINO)=2 Or (PREZZI.CODICE_LISTINO)=3))
GROUP BY ARTICOLI.CODICE_INTERNO, ARTICOLI.DESCRIZIONE
PIVOT PREZZI.CODICE_LISTINO;
--------------------------------------
Problema 1, la query e' di una lentezza esasperante, circa 80.000 articoli, 
circa 7-8 prezzi per articolo, ci mette tre-quattro minuti, e quindi vorrei 
capire se e come fosse possibile velocizzarla
problema 2 e piu' importante, al report che visualizza i dati della query 
come faccio ad indicare che CODICE e DESCRIZIONE articolo ci sono sempre, 
mentre le altre colonne (in questo caso il listino 0,1,2,3) potrebbero anche 
non esserci o almeno potrebbero essere diverse ?
E si perche' se l'operatore volese stampare alcuni articoli con i prezzi 
tratti dal listino 7 e 8 allora il nome colonna sarebbe diverso e quindi il 
report non 'vedrebbe' il valore che gli arriva dalla query
Terza cosa, ma questa e' solo un abbellimento, quel SUM(PREZZI.PREZZO) e' 
proprio indispensabile su query col raggruppamento ?
Non riesco a toglierlo ed e' comunque inutile visto che non verranno mai 
sommati due valori (non esistono due prezzi per lo stesso articolo/listino)
Ciao e grazie
RobertoA

 in
Ouuu  pirlotto, non ti sembra d sfruttarlo un po' troppo sto ng ???
Studia di piu' e non dimandare

 Studia di piu' e non dimandare
Eh si, in effetti
Ma qua sono tanto gentili che ti senti a casa tua
E poi mica lo chiedo per me
Lo chiedo per fare sapere agli altri come si farebbe se servisse 'sta cosa
Soo' carino e pure altruista

 ha scritto nel messaggio 
news:469b...@newsgate.x-privat.org...

Ma che eh?? Virus Marzullos?
Io per risolvere un problema simile ho creato le caselle di testo non 
associate, tante quante ce ne entrano nel foglio A4.
Poi eseguo le query di accodamento in tabelle temporanee e tramite codice 
assegno i campi alle caselle non associate...
Ciao.
-- 
Sergio MAZZA 


Come tabella temporanea ?
E se hai 500.000 articoli ti tocca rifare ogni volta una tabella cosi grossa 
?
Ma poi, se i dati sono li pronti nella query, credo la soluzione non sia 
tanto lontana
Basta fare in modo che il report si 'adatti' ai dati dell'interrogazione sql
In definitiva la query manda indietro delle righe fatte cosi:
codice articolo, descrizione, prezzo1, prezzo4, prezzo5, prezzo8, ..., 
prezzoN
Sicuramente c'e' una soluzione piu' elegante della creazione tabella
Pur restando attualmente anche questa una soluzione al problema
Ciao e grazie
RobertoA

 RobertoA
Elegante? O alla moda?
Mah!
Puoi sempre associare, con VBA, i campi alle caselle di testo aprendo il 
report in modalità struttura...
Ciao.
-- 
Sergio MAZZA 

 report in modalità struttura...
Intendevo una soluzione non a 'forza bruta'
Insomma una cosa che permettesse di adattare automaticamente il report alla 
query che puo' avere numero colonne variabili
Quello di aprirlo in modalita struttura non la sapevo, 'esso indago
Ciao
RobertoA

 RobertoA
Ciao.
-- 
Sergio MAZZA