Non so come esprimerlo in SQL, se è possibile, o come chiamarlo.Primo match non ancora utilizzato
Desidero, per ogni record della Tabella A, il primo record di corrispondenza migliore nella Tabella B che non sia stato già selezionato come migliore corrispondenza. Ad esempio, supponiamo di avere un generico Shopping List e un menù:
Table A Table B
Generic Shopping List Food Menu
--------------------- ----------------------
Food Type Food Food Type
--------------------- ----------------------
Meat Tomatoes Vegetable
Meat Lettuce Vegetable
Vegetable Bacon Vegetable
Vegetable Bacon Meat
Vegetable Beef Meat
Vegetable Apple Fruit
Fruit Orange Fruit
Fruit Bacon Fruit
Dairy Milk Dairy
Cheese Dairy
Yogurt Dairy
Con una query o partecipare, è facile ottenere il Top 1 partita:
Table/Query C
Automagic Shopping
------------------
Food
------------------
Bacon
Bacon
Tomatoes
Tomatoes
Tomatoes
Tomatoes
Apple
Apple
Milk
So come fare e siccome mi piace il bacon, potrei vivere con questo. Sfortunatamente, ho davvero bisogno dell'intera gamma di opzioni alimentari disponibili, in modo tale che io abbia degli slot disponibili per questo.
Table/Query C
Better Magic Shopping
---------------------
Food
---------------------
Bacon
Beef
Tomatoes
Lettuce
Bacon
<NULL - No More Available Matches - Don't Care>
Apple
Orange
Milk
Se questo può essere fatto in Access, ottimo. Se non può essere fatto in Access, ma può essere fatto in un altro prodotto, non è l'ideale, ma è praticabile.
Grazie.
Impressionante, e grazie! Per la mia edificazione, come si chiama questo tipo di problema? – Dave
@Dave Ho paura di non poterti aiutare in questa domanda. 'ROW_NUMBER' è generalmente una funzione che si rivela utile in casi come questi, dove è richiesto un tipo di join ad hoc tra due set. –