0
У меня есть таблица, заполненная закупочные цены, как это:MS-Access Получить цену продукта на определенной дате заказа
sku price btw startdate PCR-CA5425023181515 21,17 € 1 01/01/2009 PCR-CA5425023181515 999,00 € 1 06/06/2009 PCR-CA5425023181515 444,00 € 4 09/07/2009 PCR-CA5425023181515 100,00 € 4 10/08/2009
Я другой стол, заполненный с заказами, как это:
sku quantity orderdate PCR-CA5425023181515 5 01/05/2009 PCR-CA5425023181515 10 01/12/2009 PCR-CA5425023181515 10 24/12/2009
Моя цель - получить каждую покупную цену за заказ с этой даты. (Например: когда я заказал продукт в первой из майских (01/05), он стоил 21,17 евро. Когда я заказал его в первый раз (01/12), он стоил 100,00 евро.)
Я боролся с этим в течение последнего часа, но пока не нашел ничего полезного.
Это точно! Первый, с подзапросом, работает как шарм. Я также пробовал что-то с WHERE EXISTS, но имел несколько подзапросов. Это не закончилось. Второй, однако, не работает. Доступ жаловался на пропавших операторов. (Это, очевидно, не так) – skerit
Остерегайтесь, потому что подзапросы с NOT не оптимизированы в Jet/ACE и не всегда используют индексы по обе стороны от критерия. NOT EXISTS в этом отношении еще хуже, чем NOT IN, которая использует оба индекса большую часть времени. Случаи, когда он не работает, не являются полностью предсказуемыми, и поскольку он может иметь какое-то отношение к метаданным, подзапрос NOT, который не является производителем свинца сегодня, может быть одним из них при некоторых других обстоятельствах, например, когда задействованы другие записи. –