View Full Version : Aiuto Query in Access!
AttilaxXx
29-06-2005, 16:51
Ciao ragazzi, ascoltate ho 2 tabelle in cui in una[TABELLA PREVENTIVO] ho il codice dei prodotti la loro descrizione e il loro prezzo mentre in una seconda tabella [TABELLA NUOVI PREZZI] ho sempre il loro codice,la loro descrizione e un prezzo aggiornato diverso dal primo...ora dovrei fare una query che mi dia codice e descrizione del prodotto che abbia però il prezzo diverso da quello della TABELLA PREVENTIVO e che mi compaia appunto il prezzo aggiornato...spero di essermi spiegato...come posso fare?
Nella struttura della query se metto come criterio nel campo PREZZO AGGIORNATO <>val("primo prezzo") mi compaiono tutte le voci...come posso fare?Il linguaggio SQL lo so usare poco perciò uso di più la struttura per impostare una query...HELP PLEASE! :D
PS:Vi faccio una specie di schema -
TABELLA PREVENTIVO = CAMPI: COD,DESCRIZIONE,PREZZO PROMO(ci sono altri campi ma non mi servono)
TABELLA NUOVI PREZZI = CAMPI: COD,DESCRIZIONE,PREZZO AGGIORNATO
QUERY NUOVO PREZZO = CAMPI: COD,DESCRIZIONE,PREZZO PROMO(TUTTI DELLA 1à TABELLA)E PREZZOAGGIORNATO
HELPPPPPPPPPPPPPPPPPPPPPPPPPPPPP :cry: :cry: :cry:
PPS: Ma perchè se faccio la creazione guidata di una query con queste 2 tabelle mi esce "INDICE NON INCLUSO NELL'INTERVALLO"?
MEGA HELPPPPPPPPPPPPPPPPP :cry: :cry: :cry: :cry: :cry: :cry:
motogpdesmo16
29-06-2005, 17:42
Ciao ragazzi, ascoltate ho 2 tabelle in cui in una[TABELLA PREVENTIVO] ho il codice dei prodotti la loro descrizione e il loro prezzo mentre in una seconda tabella [TABELLA NUOVI PREZZI] ho sempre il loro codice,la loro descrizione e un prezzo aggiornato diverso dal primo...ora dovrei fare una query che mi dia codice e descrizione del prodotto che abbia però il prezzo diverso da quello della TABELLA PREVENTIVO e che mi compaia appunto il prezzo aggiornato...spero di essermi spiegato...come posso fare?
Nella struttura della query se metto come criterio nel campo PREZZO AGGIORNATO <>val("primo prezzo") mi compaiono tutte le voci...come posso fare?Il linguaggio SQL lo so usare poco perciò uso di più la struttura per impostare una query...HELP PLEASE! :D
PS:Vi faccio una specie di schema -
TABELLA PREVENTIVO = CAMPI: COD,DESCRIZIONE,PREZZO PROMO(ci sono altri campi ma non mi servono)
TABELLA NUOVI PREZZI = CAMPI: COD,DESCRIZIONE,PREZZO AGGIORNATO
QUERY NUOVO PREZZO = CAMPI: COD,DESCRIZIONE,PREZZO PROMO(TUTTI DELLA 1à TABELLA)E PREZZOAGGIORNATO
HELPPPPPPPPPPPPPPPPPPPPPPPPPPPPP :cry: :cry: :cry:
PPS: Ma perchè se faccio la creazione guidata di una query con queste 2 tabelle mi esce "INDICE NON INCLUSO NELL'INTERVALLO"?
MEGA HELPPPPPPPPPPPPPPPPP :cry: :cry: :cry: :cry: :cry: :cry:
sicuro che hai messo in relazione le due tabelle??
Vai nella finestra "Relazioni"(Strumenti-->Relazioni) e controlla che ci sia la relazione 1:1 tra il codice della tabella "Preventivo" e il codice della tabella "Nuovi prezzi".
La query secondo me non ti viene creata proprio perchè non c'è relazione fra quelle due tabelle.
AttilaxXx
29-06-2005, 18:14
No le tabelle sono in relazione in quanto ho messo il codice del prodotto della prima tabella come chiave secondaria e il codice del prodotto della seconda tabella come chiave primaria relazionandoli fra loro a 1:1 (senza applicare l'integrità referenziale giusto?).
Ma una guida approfondita sulla rete dove è possibile trovare una guida sull'Access o almeno sulle query?
:cry: :cry: :cry:
motogpdesmo16
29-06-2005, 18:27
No le tabelle sono in relazione in quanto ho messo il codice del prodotto della prima tabella come chiave secondaria e il codice del prodotto della seconda tabella come chiave primaria relazionandoli fra loro a 1:1 (senza applicare l'integrità referenziale giusto?).
Ma una guida approfondita sulla rete dove è possibile trovare una guida sull'Access o almeno sulle query?
:cry: :cry: :cry:
io l'ho applicata l'integrità referenziale. Anzi ti dirò di più il database l'ho fatto seguendo i tuoi campi e mi funziona tranquillamente la query fatta in modalità "creazione guidata".
AttilaxXx
30-06-2005, 07:12
E come criterio che hai messo? :eek:
motogpdesmo16
30-06-2005, 07:32
E come criterio che hai messo? :eek:
quale criterio???
Se vuoi ti mando il database che ho creato così ti rendi conto delle operazioni (poche) che ho fatto.
AttilaxXx
30-06-2005, 09:32
Si se me lo invii mi fai un piacere grandissimo! :D
Cmq scusa per far comparire solo i prodotti che hanno il prezzo diverso nella seconda tabella rispetto alla prima non si deve mettere un criterio del tipo "<>[nome campo]? :confused:
motogpdesmo16
30-06-2005, 09:57
Si se me lo invii mi fai un piacere grandissimo! :D
Cmq scusa per far comparire solo i prodotti che hanno il prezzo diverso nella seconda tabella rispetto alla prima non si deve mettere un criterio del tipo "<>[nome campo]? :confused:
ah aspetta, non avevo colto questo passo. Praticamente la query ti deve mostrare i prodotti che hanno prezzo diverso tra le due tabelle...
al link trovi il database. Spero di aver ben compreso l'impostazione che intendevi dare al tuo db. Nel caso non fosse così, contattami sempre qui sul forum!!
db (http://desmosedici16.altervista.org/prova.mdb)
AttilaxXx
30-06-2005, 16:43
Perfetto era esattamente quello che intendevo! :D
Ora ti chiedo un altra cosa...se aggiungo un prodotto nuovo nella tabella 1 e questo prodotto non c'è nella tabella 2...come faccio a far comparire codice descrizione e prodotto nella query?
Cmq grazie mille fin ora mi sei stato di grande aiuto! :p
AttilaxXx
30-06-2005, 18:15
A e poi approfitto della tua gentilezza per chiederti un altra cosa...come si usa il comando Like in versione multipla?
Cioè se voglio che mi evidenzia una query solo i campi che hanno le lettere L,P,K come devo fare?
Per fare solo la L potrei fare Like"L".....ma per inserirle tutte?
Ringrazio in anticipo..... :D
AttilaxXx
01-07-2005, 22:46
A e poi approfitto della tua gentilezza per chiederti un altra cosa...come si usa il comando Like in versione multipla?
Cioè se voglio che mi evidenzia una query solo i campi che hanno le lettere L,P,K come devo fare?
Per fare solo la L potrei fare Like"L".....ma per inserirle tutte?
Ringrazio in anticipo..... :D
Ho trovato soluzione...ora avrei un altro piccolo problema....vi prego aiutatemi perchè è molto importante...
Se in una tabella che ho come campi codice prodotto,data acquisto e prezzo...e che il codice è ripetuto + volte perchè ho acquistato più volte tale prodotto in diverse date....come faccio a fare una query che mi indichi l'ultima data di acquisto per ogni prodotto?
HELPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP :cry: :cry: :cry:
motogpdesmo16
02-07-2005, 00:54
Ho trovato soluzione...ora avrei un altro piccolo problema....vi prego aiutatemi perchè è molto importante...
Se in una tabella che ho come campi codice prodotto,data acquisto e prezzo...e che il codice è ripetuto + volte perchè ho acquistato più volte tale prodotto in diverse date....come faccio a fare una query che mi indichi l'ultima data di acquisto per ogni prodotto?
HELPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP :cry: :cry: :cry:
prova un po' con questa query:
SELECT cod_prodotto, data_acquisto, prezzo MAX(data_acquisto) AS Data_ultimo_acquisto
FROM Prodotti
GROUP BY cod_prodotto
HAVING Data_ultimo_acquisto=MAX (data_acquisto)
ORDER BY prezzo (questa se vuoi ce la metti altrimenti niente, se ti interessa l'ordinamento in base al prezzo ad esempio)
l'ho fatta a mente adesso.
Fammi sapere se funziona e, se non dovesse funzionare, fammi sapere che risultati ti da così vediamo di modificarla!
AttilaxXx
02-07-2005, 10:11
prova un po' con questa query:
SELECT cod_prodotto, data_acquisto, prezzo MAX(data_acquisto) AS Data_ultimo_acquisto
FROM Prodotti
GROUP BY cod_prodotto
HAVING Data_ultimo_acquisto=MAX (data_acquisto)
ORDER BY prezzo (questa se vuoi ce la metti altrimenti niente, se ti interessa l'ordinamento in base al prezzo ad esempio)
l'ho fatta a mente adesso.
Fammi sapere se funziona e, se non dovesse funzionare, fammi sapere che risultati ti da così vediamo di modificarla!
Ma quel "AS Data_ultimo_acquisto" rappresenta un campo o altro?
motogpdesmo16
02-07-2005, 10:20
Ma quel "AS Data_ultimo_acquisto" rappresenta un campo o altro?
praticamente sarebbe la nuova stringa del campo.
Comunque mi sono accorto che è errata quella query e sto trovando il rimedio per fare l'estrazione del prodotto che abbia la data più recente. Appena riesco a fare qualcosa la posto, perchè interessa anche il mio progetto di db.
motogpdesmo16
02-07-2005, 12:02
ecco la query. A me funziona.
Ti spiego brevemente: in una tabella registro delle ordinazioni prendendo come Data_ordine Orario quelle del sistema.
Per il buon funzionamento della query, ho posizionato le colonne Data_Ordine e Orario all'inzio della tabella
http://img101.imageshack.us/img101/5905/tab49jy.jpg
e ordinate in modo Decrescente
http://img101.imageshack.us/img101/7505/tab56so.jpg
Come vedi l'ordinamento della tabella e il fatto di aver cambiato la posizione non compromette la struttura della tabella:
http://img101.imageshack.us/img101/6185/tab69hi.jpg
Il codice della query è il seguente:
SELECT TOP 1 *
FROM Appoggio
ORDER BY Appoggio.Data_Ordine DESC , Appoggio.Orario DESC;
e come puoi vedere, anche confrontando con la prima immagine, viene estratto il record più recente:
http://img101.imageshack.us/img101/9872/tab77ak.jpg
spero di esserti stato d'aiuto. per altre domande chiedi pure.
AttilaxXx
02-07-2005, 12:37
Perfetto...mo ci provo e vediamo il risultato....grazie mille!Ti faccio sapere! :D
AttilaxXx
04-07-2005, 09:34
Scusa tornando al discorso precedente(poi riprendiamo l'ultimo argomento)se tu ricordi la prima domanda(leggila casomai :D )per quanto riguarda la visualizzazione dei prezzi che cambiano nella query...ora ho risolto questo problema...me li fa vedere quelli che cambiano utilizzando la formula <>[nome campo] ma se aggiungo un prodotto in più che nella tabella non ce sta la query non me lo fa vedere....cioè se lo aggiungo alla prima tabella che poi si "confronta"con la seconda nella query mi dovrebbe comparire questo nuovo prodotto ma invece ciò non accade....mi sapresti dire come fare?
Spero di essermi spiegato,ho utilizzato un italiano tarocco ma il discorso è abbastanza complicato....help please! :stordita:
motogpdesmo16
04-07-2005, 09:46
Scusa tornando al discorso precedente(poi riprendiamo l'ultimo argomento)se tu ricordi la prima domanda(leggila casomai :D )per quanto riguarda la visualizzazione dei prezzi che cambiano nella query...ora ho risolto questo problema...me li fa vedere quelli che cambiano utilizzando la formula <>[nome campo] ma se aggiungo un prodotto in più che nella tabella non ce sta la query non me lo fa vedere....cioè se lo aggiungo alla prima tabella che poi si "confronta"con la seconda nella query mi dovrebbe comparire questo nuovo prodotto ma invece ciò non accade....mi sapresti dire come fare?
Spero di essermi spiegato,ho utilizzato un italiano tarocco ma il discorso è abbastanza complicato....help please! :stordita:
dalla tuo reply di apertura leggo:
ora dovrei fare una query che mi dia codice e descrizione del prodotto che abbia però il prezzo diverso da quello della TABELLA PREVENTIVO e che mi compaia appunto il prezzo aggiornato...spero di essermi spiegato...come posso fare?
cioè vuoi che ti vengano visualizzati solo gli elementi che hanno prezzo diverso tra le due tabelle.
Nel database che ti ho allegato questo avviene tranquillamente.
Ovvio che devi prima valorizzare la tabella con i soli prezzi e poi quella dove compare il campo "eccetera". Dal db allegato prova ad eseguire la query, e vedi che gli elementi che hanno lo stesso prezzo non ti vengono visualizzati.
Spero di avere compreso ciò che intendevi dire.
Gogeta ss4
05-07-2005, 08:54
Attila hai detto che fra quelle due tabelle hai creato una associazione 1->1 giusto?
Ma non riesco a capire dove sono le chiavi esterne.. :mbe:
Un'altra cosa, alle chiavi esterne devi applicare una restrizione: "Duplicati Non Ammessi" ;)
motogpdesmo16
05-07-2005, 08:58
Attila hai detto che fra quelle due tabelle hai creato una associazione 1->1 giusto?
Ma non riesco a capire dove sono le chiavi esterne.. :mbe:
Un'altra cosa, alle chiavi esterne devi applicare una restrizione: "Duplicati Non Ammessi" ;)
si la relazione è 1:1 (puoi vedere anche il db allegato da me qualche reply fa). Non ci sono propriamente chiavi esterne, ma chiavi primarie (come da indicazione delle tabelle che c'è ad inizio thread) collegate tra loro.
Solo che non ho capito bene adesso qual è la richiesta di attila!!
Gogeta ss4
05-07-2005, 11:39
e funziona così la 1-->1 ??
Secondo me conviene usare chiavi esterne
AttilaxXx
05-07-2005, 12:53
Ma la relazione uno a uno l ho fatta....nn è quello il problema...io ho fatto una query in cui mi indica solo i prodotti ke sn cambiati di prezzo dalla prima alla seconda tabella....ma se aggiungo dei prodotti nuovi nella prima tabella vorrei ke la query li segnalasse cosa ke invece non fa....nn so se mi sn spiegato ora... :D
AttilaxXx
08-07-2005, 15:08
nada? :(
AttilaxXx
13-07-2005, 11:11
neanche te MotoGp lo sai?
io riesco a mettere il prodotto attivato il giorno stesso mettendo come criterio Date()...ma se volessi quelli di una settimana?
Del tipo....Date()-7gg si può fare?a me da errore....datemi una mano....anke non di tutti i prodotti ma solo le ultime sette date...
Gogeta ss4
13-07-2005, 11:16
sai che proprio non riesco a percepire la 1->1 in questo modo?
Non riesco ad aiutarti... :(
AttilaxXx
13-07-2005, 11:36
no vabbè ora sto facendo un altra cosa....vedi se riesci a seguirmi please...in una tabella ho tanti prodotti con tante date di acquisto....ora vorrei vedere solo i prodotti acquistati negli ultimi 7 giorni...è una query di una sola tabella...
Ti fo vedere l'SQL e vedi se trovi il mio errore....anzi o meglio...l'errore so dov'è ma vedi se riesci a correggerlo...
SELECT [PREVENTIVO - MASTERPREVENTIVO].[U - COD], [PREVENTIVO - MASTERPREVENTIVO].[Y - PROMO], [PREVENTIVO - MASTERPREVENTIVO].[V - CATEGORIA], [PREVENTIVO - MASTERPREVENTIVO].[AB - MARCA], [PREVENTIVO - MASTERPREVENTIVO].[BO - D_INSER], Count([PREVENTIVO - MASTERPREVENTIVO].[BO - D_INSER]) AS [ConteggioDiBO - D_INSER]
FROM [PREVENTIVO - MASTERPREVENTIVO]
GROUP BY [PREVENTIVO - MASTERPREVENTIVO].[U - COD], [PREVENTIVO - MASTERPREVENTIVO].[Y - PROMO], [PREVENTIVO - MASTERPREVENTIVO].[V - CATEGORIA], [PREVENTIVO - MASTERPREVENTIVO].[AB - MARCA], [PREVENTIVO - MASTERPREVENTIVO].[BO - D_INSER]
HAVING (((Count([PREVENTIVO - MASTERPREVENTIVO].[BO - D_INSER]))="MAX")) <------qui è l errore sicuramente ma non so che mettere
ORDER BY [PREVENTIVO - MASTERPREVENTIVO].[BO - D_INSER] DESC;
Help Please
AttilaxXx
14-07-2005, 12:44
Ho risolto con l aiuto di motogp che mi aveva inviato prima e non me ne ero manco accorto :doh:
Anche se forse mi conviene aprire un nuovo topic perchè ho delle domande sulle maschere....casomai ci vediamo li! :D
Grazie a tutti! :D
motogpdesmo16
14-07-2005, 13:36
figurati....per così poco.
Appena ho tempo do un'occhiata alla questione delle maschere. A prima lettura mi sembra un po' poco chiara la cosa, ma forse perchè sto contemporaneamente sviluppando un eseguibile quindi ho poco tempo a disposizione!
lieto di averti aiutato a risolvere il tuo problema ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.