Этот, вероятно, намного проще, чем я его делаю.Мне нужно запросить таблицу, которая имеет базовый макет, подобный этому
(productNumber varchar, firstYearAvailable int, lastYearAvailable int, ...)
Например
(12345, 2004, 2006, ...),
(22293b, 2009, 2011, ...),
(a7564n, 2007, 2010, ...),
etc.
Эта таблица запрашивается в функции вместе с другими таблицами посредством сложной серии объединений.На данный момент запрос выглядит примерно так:
SELECT field1, field2, productNumber, firstYearAvailable, lastYearAvailable, ...
FROM ...
JOIN ...
WHERE ...
etc.
Вместо того, чтобы возвращать диапазон года для каждого продукта (первый год - прошлый год), для меня было бы более полезно возвращать запись для каждого годадля каждого продукта (первый год, первый год + 1, ..., последний год).Например, скажем, номер продукта был 12345, а диапазон для этого продукта был 2004-2006, тогда запрос должен возвращаться для этого продукта и этих двух столбцов.
(12345,2004),
(12345,2005),
(12345,2006)
Есть еще одна деталь, которая делаетэтот запрос особенно сложен, запрос выполняется по нескольким номерам деталей, и у каждого номера детали может быть свой годовой диапазон.
У кого-нибудь есть какие-либо советы о том, как решить эту проблему?Я дурачился с циклами и объединениями и динамически генерировал оператор SQL с помощью условных выражений, но ни один из них не был эффективен.
Надеюсь, я предоставил достаточно информации, но если нет, просто спросите.
Спасибо