Questione : Domanda misteriosa di accesso

Descrizione
Ho funzionato in un'edizione con una domanda di accesso che vorrei fare funzionare da altri esperti.  Già ho un'azione alternativa, in modo da non sono interessato in quanto. Che cosa sto cercando è una spiegazione o una certa comprensione per capire più meglio perché la domanda non funziona come preveduto.

La domanda
YOURTABLE è l'unica tabella è implicato.  Ha una colonna che è la chiave primaria e il EmployeeID, whiich di identificazione inoltre è richiesto. Inoltre ha molte colonne facoltative, ma facilitare questo problema che ho eliminato tutti solo tre.

Un impiegato può avere annotazioni multiple.  Ogni annotazione può avere zero--tutto dei campi facoltativi popolati.  Quelle non popolate sono posizione di segnale minimo o contengono una stringa vuota.

Voglio la domanda restituire 1 fila per impiegato.  Quando un impiegato ha annotazioni multiple, voglio quello con i campi più facoltativi popolati.  Quando ci è un legame, voglio quello con l'più alta chiave primaria.

Il mio metodo
Uso le domande annidate per fornire i risultati.  YOURTABLECOUNT restituisce ogni fila con una colonna supplementare che conta i campi facoltativi.  YOURMAXCOUNT restituisce appena le file con i campi più facoltativi popolati per ogni impiegato.  Entrambe quelle domande funzionano benissimo.  

Tuttavia, YOURMAXCOUNT produce le file multiple per lo stesso impiegato.  Quello è preveduto quando ci sono legami sull'più alto conteggio popolato del campo. QUERY1 è un tentativo di eliminare i legami selezionando l'più alta chiave primaria a partire fra dai legami.


Il problema
Invitare QUERY1 per restituire 1 fila per ogni impiegato che usando una sottointerrogazione correlata. Ma restituisce soltanto 1 fila complessivamente come se la parte di correlazione stia ignoranda. Invece di restituzione della chiave primaria più alta FRA DAI LEGAMI per lo stesso impiegato, restituisce soltanto l'più alta chiave primaria ATTRAVERSO l'INTERA TABELLA.

Ho ottenuto i risultati previsti in QUERY2, semplicemente usando gli pseudonimi differenti della tabella che QUERY1.   Sembra come il quel non dovrebbe importare, ma sembra a.

Inoltre ho ottenuto i risultati previsti in QUERY3 con gli pseudonimi ma usando della tabella originale un unire anziché una sottointerrogazione correlata.

La base di dati della prova
Realizzo che questa è una domanda prolissa; è capita il più bene esaminando la base di dati allegata della prova.   BTW, ho il problema sia in .mdb che nella lima di .accdb using accesso 2007.

Domande
1.  Perché QUERY1 restituisce 1 fila anziché 1 fila per impiegato?
2.  Perché pseudonimi cambiare della tabella fa una differenza?












 

 
Collegamenti:
 
Prova misteriosa di domanda
 

Risposta : Domanda misteriosa di accesso

Il Android 2.0 verso l'alto sostiene i clienti di scambio del mutiple: -

http://developer.android.com/sdk/android-2.0-highlights.html


Altre soluzioni  
 
programming4us programming4us