Newsgroup: it.comp.appl.access
Titolo: Parere su query

Salve, ho un piccolo problemino....almeno spero che sia piccolo!:-)
Devo fare una stampa degli articoli della mia azienda con alcune
caratteristiche tipo: Peso, Classificazione, Scorta.
Il problema è che il tracciato record del database è di questo tipo:
ID    Prodotto    Sez.    Voce    Valore    Lungh. Dec.
1     New5201      01     001     10,5         2        0
2     New5201      01     002     NT5         3
3     New5201      02     001     350,0       3        0
4     New5005      01     001     12,5         2        0
5     New5005      01     002     WS0        3
6     New5005      02     001     150,0       3        0
7     New6002      01     001     20,2         2        0
8     New6002      01     002     TT3         3
9     New6002      02     001     400.0       3        0
Come faccio a fare una query che abbia invece questo formato?
Prodotto       Peso   Classe      Scorta
New5201    10.5      NT5       350,0
New5005    12.5      WS0      150,0
New6002    20.2      TT3       400,0
Che cosa ne pensate del tracciato record? Stiamo cambiando software
gestionale e il nuovo db ha i file con questo tipo di tracciato record. Noi
siamo abituati con un tracciato record classico e sinceramente siamo rimasti
un po' spiazzati.
Se qualcuno ha qualche commento da fare ben venga. Grazie.
Donato
ark...@tin.it


Ciao, Donato.
Il tuo problema non č chiaro, almeno per me.
Se si tratta solo di cambiare il nome ai campi nella query č molto semplice:
metti il nome che vuoi nella colonna, i due punti e il nome vero del campo.
Cosě "Valore" diventa Peso:Valore.
Se invece vuoi proprio cambiare la struttura della tabella e importare i
dati secondo il nuovo schema la cosa cambia e anche di parecchio. Ho notato
infatti che i campi Peso, Classe e Scorta del nuovo formato, hanno i valori
che sono contenuti nel campo Valore del primo formato.
Quanto poi a decidere se sia meglio l'uno o l'altro bisogna che fornisci
delle altre indicazioni.
Ciao, Carlo

 un po' spiazzati.
Mi sembra molto più razionale e soprattutto in formato relazionale di quello
vostro.
Non ha senso registrare informazioni realtive allo stesso oggetto in 3
record distinti!!!!
Antonio

 New6002    20.2      TT3       400,0
[...]
    TRANSFORM
        First(x_Donato.Valore) AS PrimoDiValore
    SELECT
        x_Donato.Prodotto
    FROM
        x_Donato
    GROUP BY
        x_Donato.Prodotto
    ORDER BY
        x_Donato.Prodotto
    PIVOT
        IIf([x_Donato].[Sez] & [x_Donato].[Voce]="01001","Peso","")
      & IIf([x_Donato].[Sez] & [x_Donato].[Voce]="01002","Classe","")
      & IIf([x_Donato].[Sez] & [x_Donato].[Voce]="02001","Scorta","")
      In ("Peso","Classe","Scorta")
    ;
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 wrote in
news:CoCk9.145329$
ub2.3...@news1.tin.it
: 

Supponendo che la tabella si chiami Tabella1, io scriverei così:
TRANSFORM First(Tabella1.Valore) AS PrimoDiValore
SELECT Tabella1.Prodotto
FROM Tabella1
GROUP BY Tabella1.Prodotto
PIVOT Choose(([Voce]+2*[Sez])-2,"Peso","Classe","Scorta");
Ciao.

PIVOT Choose(([Voce]+2*[Sez])-2,"Peso","Classe","Scorta");
Si funzia , adesso me la studio.
Choose per me è una cosa nuova, così com'è non lo trovo, sai dirmi
dove  trovo la sintassi, grazie.
Ciao. Fabrizio

    ;
Manca qlc , adesso cerco di capire dove.
Ciao. Fabrizio

Fabrizio <fabrizio...@SPAMtiscalinet.it> wrote in 
news:hg16puk7u5qvqinbl...@4ax.com
:

  Nella guida in linea di Access (o di VB).
  Eccone un breve stralcio:
Seleziona e restituisce un valore da un elenco di argomenti.
Sintassi:
Choose(indice, scelta-1[, scelta-2, ... [, scelta-n]])
La sintassi della funzione Choose è composta dalle seguenti parti:
*indice: Obbligatoria. Espressione numerica o campo che restituisce un 
valore compreso tra 1 e il numero delle scelte disponibili.
*scelta: Obbligatoria. Espressione Variant contenente una delle scelte 
possibili.
  Ciao.
--------------------------------------
http://digilander.libero.it/winses

  Ciao.
Ti ringrazio per lo stralcio .
Ciao. Fabrizio

 un po' spiazzati.
1) Che software e'? (mi interessa)
2) Dovrebbe avere "radici" piuttosto vecchie poiche' e' il classico
   tracciato a tipo record 
3) Cosa intendi tu per "record classico"?
--
a.cara

Ciao,
In realtà l'esempio che ho proposto era molto semplificato.
Ci sono, per ogni prodotto un numero di 50/60 attributi e tante altri
incasinamenti che non sto quì a dirvi...
Vorrei solamente un parere su questo tipo di struttura, dato che il
programma che stiamo accingedoci ad acquistare ha i file di archivio
dell'anagrafico strutturati in questo modo.
Attualmente in azienda usiamo le ACG sotto AS/400 e siamo abituati con un
formato record classico.
Utilizziamo molte applicazioni (Access, Excel) che tramite ODBC si collegano
(tabelle collegate) oppure importano i dati dagli archivi ACG.
La mia preoccupazione è che col nuovo programma sia possibile fare la stessa
cosa. Sinceramente questo prg proprietario che stiamo acquistando mi sembra
molto chiuso, non vorrei che la mia azienda faccia qualche caxxata e allora
volevo qualche opinione aggiuntiva.
Quindi sotto con le impressioni.
Per essere più chiari vi dò qualche altra info:
il tracciato record è questo, vorrei che notaste in particolare:
- come gestiscono il fatto che un articolo abbia più fornitori
- Il fatto che considerano un campo classico come l'insieme della Sez e
della Voce e che lo stesso è definito
  sempre sulla riga dal campo lunghezza e decimale.
- se cambio un attributo al prodotto principale (quello con fornitore 000)
questo non varia sul
  corrispondente prodotto/fornitore...
- come faccio ogni volta che devo fare delle query (noi le utilizziamo in
maniera massiccia!) dato
  che non vorremmo scrivere una riga di codice (stiamo su piattaforma
AS400)?
 ID Fornitore  Prodotto Sez.  Voce                               Valore
Lungh. Dec.
 1   0000       New5201 01    001 (Peso)                        10,5
2      0
 2   0000       New5201 01    002 (Classe)                      NT5       3
 3   0000       New5201 02    001 (Scorta)                      350,0     3
0
 4   1918       New5201 01    001                                   10,5
2      0
 5   1918       New5201 01    002                                   NT5
3
 6   1918       New5201 02    001                                   350,0
3      0
 7   1918       New5201 03    001 (Cod.x Fornitore1)     C70305  6
 8   0000       New5005 01    001                                   12,5
2      0
 9   0000       New5005 01    002                                   WS0
3
10  0000       New5005 02    001                                   150,0
3      0
11  1918       New5005 01    001                                   12,5
2      0
12  1918       New5005 01    002                                   WS0
3
13  1918       New5005 02    001                                   150,0
3      0
14  1918       New5005 03    001 (Cod.x Fornitore1)     C80209  6
15  1354       New5005 01    001                                   12,5
2      0
16  1354       New5005 01    002                                   WS0
3
17  1354       New5005 02    001                                   150,0
3      0
18  1354       New5005 03    001 (Cod.x Fornitore2)     E44404   6
Inoltre, nel nuovo prg viene utilizzato molto il metodo di scrivere su un
unico campo più valori, sulla stessa stringa che poi viene letta dal
programma che riconosce le porzioni della stringa che gli interessano.
A me sinceramente sembra un metodo un pò vecchiotto e poco funzionale....
Comunque...aspetto vostri commenti.
Grazie,
Donato
ark...@tin.it