Newsgroup: it.comp.appl.access
Titolo: Problema con query





Ho un problema che mi sta letteralmente facendo 
impazzire e non riesco a capire come risolverlo.


 


Ho un db con le seguenti tabelle:


1 tabella richiesta con chiave primaria 
codrichiesta


2 tabella colturabianca con doppia chiave primaria 
codrichiesta e codcolturabianca


3 tabella colturanera con doppia chiave primari 
codrichiesta e codcolturanera


 


In pratica una richiesta può contenere n colture 
bianche ed n colture nere


 


Supponiamo che io abbia una sola richiesta 
all'interno della quale ho due richieste di colture bianca e due richieste di 
colture nere.


Se vado a fare una query in cui inserisco il 
codrichiesta ed il codcoltura bianca ottengo il mio risultato di due soli 
record, cioè:


 




codrichiesta    
codcolturabianca     


1                        
2                        


1                        
3                           



 


 idem se lo faccio x le colture nere. Ma se 
faccio una query in cui inserisco tutte e tre le tabelle i record vengono 
duplicati, cioè non ottengo come vorrei


 


codrichiesta    
codcolturabianca     codcolturanera


1                        
2                            
-


1                        
3                           
-


1                        
-                           
4


1                        
-                           
5


 


ma ottengo


 




codrichiesta    
codcolturabianca     codcolturanera


1                        
2                           4


1                        
3                           
5


1                        2                           
4


1                        3                           
5


 


In pratica il mio scopo sarebbe quello di sommare in una unica query i 
campi codcolturabianca e codcoltura nera ma se vengono duplicati non è 
possibile.


Come posso risolvere il problema ? Dipende dal fatto che vengono riempiti 
con un valore anche i campi che in realtà sono nulli ?


 


Grazie mille a chi mi fa uscire da questo casino


 


Antonio









Devi costruire due query, una per ColturaBianca ed 
una per ColturaNera, dove costruisci la relazione con la Richiesta.


Poi fai una query di unione tra le due 
query.


 


qryColturaNera


SELECT tblRichiesta.IDRichiesta, Null AS 
ColturaBianca, tblColturaNera.Str_ColturaNera AS ColturaNera
FROM 
tblRichiesta INNER JOIN tblColturaNera ON tblRichiesta.IDRichiesta = 
tblColturaNera.IDRichiesta;


qryColturaBianca


SELECT tblRichiesta.IDRichiesta, 
tblColturaBianca.Str_ColturaBianca AS ColturaBianca, Null AS ColturaNera
FROM 
tblRichiesta INNER JOIN tblColturaBianca ON tblRichiesta.IDRichiesta = 
tblColturaBianca.IDRichiesta;


qryUnione


SELECT * from qryColturaBianca UNION select * from 
qrycolturanera;


Così dovrebbe 
servirti.



Non capisco perchč devi creare due tabelle, se ne crei una unica attribuendo
indici differenti?
Quello che ti succede č normale perchč al codice "1" della tabella
principale corrispondono 2 campi nella tabella "CodBianco" e 2 campi in
quella "CodNero" che estrai nella stessa Qry, se avessi usato un'unica
tabella atribuendo ai dati "bianchi" un indice ed a quelli "Neri" un'altro
indice potevi estrarre solo i dati cosě:
TabPrinc.     TabSec.
     1                1   "bianchi"
     1                2   "Bianchi"
     1                3    "Neri"
     1                4    "Neri"
In effetti non capisco perchč, se i dati sono come credo dello stesso tipo,
devi fare due tabelle?
Solitamente io ne creo una, infondo il rapporto uno-molti significa proprio
questo.
Perň forse non ho capito bene il tuo problema, in tal caso scusa, magari
spiegandolo meglio potrei.....
-- 
Posted from 
smtp4.libero.it
 [193.70.192.54] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG