Newsgroup: it.comp.appl.access
Titolo: QUERY VALORI DUPLICATI

Buongiorno!
Ho bisogno del vostro prezioso aiuto.
Ho una query con i seguenti campi:
ID (testo) univoco
DISEGNO (testo) valori duplicati
STATUS (testo) valori duplicati
Seleziono solo i record che soddisfano STATUS = "xxx"
A questo punto vorrei visualizzare una sola occorrenza per ogni
DISEGNO.
Non ho nessun interesse per il valore contenuto nel campo ID.
Esempio:
Query con dati filtrati STATUS = "XXX"
ID	 DISEGNO	STATUS
cod01	 DIS-A		XXX
cod02	 DIS-B		XXX
cod03	 DIS-C		XXX
cod04	 DIS-A		XXX
cod05	 DIS-A		XXX
cod06	 DIS-B		XXX
VORREI OTTENERE:
ID	 DISEGNO	STATUS
cod01	 DIS-A		XXX
cod02	 DIS-B		XXX
cod03	 DIS-C		XXX
In seguito scorrerò tutti i record di questa query per catturare il
valore contenuto nel campo DISEGNO e memorizzarlo altrove.
Come posso realizzare quanto soprascritto?
Grazie a tutti.
Nicola

 cod03	 DIS-C		XXX
SELECT * FROM tabella WHERE disegno IN (SELECT DISTINCT disegno FROM tabella 
WHERE STATUS='XXX')
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

WHERE STATUS='XXX')
forse sto sbagliando qualcosa......
ma usando quello che hai scritto ci vuole una vita prima di vedere il
risultato della query e non fa quello che vorrei
puoi spiegarmi meglio quello che avevi scritto?

 ha scritto nel messaggio
news:smq052ddt6bp3k8jc...@4ax.com...

Ciao Nicola,
se non ho capito male è sufficiente una semplice query di raggrupamento
es
----
SELECT Min(Id) AS MinDiId, Disegno, Status
FROM Disegni
GROUP BY Disegno, Status;
----
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

 ha scritto nel
messaggio news:44508eec$0$29096$5fc...@news.tiscali.it...
ho dimenticato il filtro
----
SELECT Min(Id) AS MinDiId, Disegno, Status
FROM Disegni
WHERE Status='XXX'
GROUP BY Disegno, Status;
----
:-)


:-)
Giorgio, ciao e grazie.
Ci siamo quasi.....
nel senso che funziona ma non sono sicurissimo di quello che sto
facendo non avendo pratica con SQL....ho bisogno di una conferma.
oltre ai campi ID, DISEGNO e STATUS ho anche altri campi....che avevo
omesso nella spiegazione per semplificare la mia richiesta....provo a
spiegarmi meglio
i campi sono:
MACCHPRODGRU testo 
ID testo (CHIAVE UNIVOCA)
DISEGNO testo
QUANT numerico
NPARTtesto
STATUS testo
per ogni DISEGNO visualizzato i campi QUANT, NPART e STATUS contengono
lo stesso valore, mentre il campo ID essendo la chiave non ha
duplicati e il campo MACCHPRODGRU puň contenere valori uguali per un
tot di record
quindi la query che ho fatto in visualizzazione SQL contiene questo
SELECT Min([MACCHINE-PRODOTTI-GRUPPI-DISEGNI].MACCHPRODGRU) AS
MinDiMACCHPRODGRU, [MACCHINE-PRODOTTI-GRUPPI-DISEGNI].DISEGNO,
Min([MACCHINE-PRODOTTI-GRUPPI-DISEGNI].ID) AS MinDiID,
[MACCHINE-PRODOTTI-GRUPPI-DISEGNI].QUANT,
[MACCHINE-PRODOTTI-GRUPPI-DISEGNI].NPART,
[MACCHINE-PRODOTTI-GRUPPI-DISEGNI].STATUS
FROM [MACCHINE-PRODOTTI-GRUPPI-DISEGNI]
GROUP BY [MACCHINE-PRODOTTI-GRUPPI-DISEGNI].DISEGNO,
[MACCHINE-PRODOTTI-GRUPPI-DISEGNI].QUANT,
[MACCHINE-PRODOTTI-GRUPPI-DISEGNI].NPART,
[MACCHINE-PRODOTTI-GRUPPI-DISEGNI].STATUS
HAVING ((([MACCHINE-PRODOTTI-GRUPPI-DISEGNI].STATUS) Like
[Forms]![___COMANDI___]![MACCHINA] & "*NEUTRO"))
ORDER BY Min([MACCHINE-PRODOTTI-GRUPPI-DISEGNI].MACCHPRODGRU),
[MACCHINE-PRODOTTI-GRUPPI-DISEGNI].DISEGNO;
in visualizzazione struttura č cosě:
Tutti i campi visibili
MACCHPRODGUR 
Formula = Min
DISEGNO
Formula = Raggruppamento
ID
Formula = Min
QUANT
Formula = Raggruppamento
NPART
Formula = Raggruppamento
STATUS 
Formula = Raggruppamento
Criteri = Like [Forms]![___COMANDI___]![MACCHINA] & "*NEUTRO"
Grazie 1000.
Ciao
Nicola

 tot di record
[CUT]
tieni presente che per ogni valore univoco di MACCHPRODGRU otterrai un ID
diverso.
Se questo non č il risultato atteso allora mostra un esempio di dati e il
risultato che vuoi ottenere, in caso contrario la query va bene cosě.
Ciao


 ha scritto nel messaggio

ok, allora ci dovrei essere.
faccio un po' di test
non posso altro dirti che grazie!!!
Ciao
Nicola


aspetta,  non avevo visto che MACCHPRODGUR č sottoposto alla funzione Min()
----
MACCHPRODGUR
Formula = Min
ID
Formula = Min
----
in questo caso con con questi dati
----
Id Disegno Status MACCHPRODGUR
cod01 DIS-A XXX MACC1
cod02 DIS-B XXX MACC2
cod03 DIS-C XXX MACC3
cod04 DIS-A XXX MACC4
cod05 DIS-A XXX MACC1
cod06 DIS-B XXX MACC2
----
otieni questo risultato
----
MinDiId Disegno Status MinDiMACCHPRODGUR
cod01 DIS-A XXX MACC1
cod02 DIS-B XXX MACC2
cod03 DIS-C XXX MACC3
----
se invece sottoponi MACCHPRODGUR a raggruppamento ottieni questo
----
MinDiId Disegno Status MACCHPRODGUR
cod01 DIS-A XXX MACC1
cod02 DIS-B XXX MACC2
cod03 DIS-C XXX MACC3
cod04 DIS-A XXX MACC4
----
cosě dovrebbe essere piů chiaro il comportamento della query :-)


 ha scritto nel messaggio

esattamente!
perfetto!
grazie ancora
ciao
nicola