Поэтому мне нужно выполнить запрос к схеме базы данных: http://sqlfiddle.com/#!9/d0b643, но пример схемы будет выглядеть так:
Table 1
itemID sale date salesmanID storeID
---------------------------------------------------
1 1/2015 1 1
1 3/2016 1 1
2 5/2016 2 1
2 1/2015 4 1
Table 2
itemID colorID price
--------------------------------------
1 1 23
1 2 10
1 3 13
2 1 11
2 2 14
2 3 18
Table 3
ColorID color
---------------------------------------
1 Red
2 Blue
3 Green
Table 4
SaleBegin SaleEnd ColorID salesmanID storeID
----------------------------------------------------------------
1/1/2014 12/31/2014 1 0 1
1/1/2015 12/31/2015 2 0 1
1/1/2016 12/31/2016 3 0 1
1/1/2014 12/31/2014 3 2 1
1/1/2015 12/31/2016 2 2 1
Мне нужно иметь что-то в предложении where, которое в значительной степени говорит, что если есть SalesmanID и saleDate из Table1 попадает между StartDate и Enddate из Table4, используйте этот цвет. В противном случае, если нет идентификатора продавца, используйте StoreID (в этом примере все они равны 1, но могут быть разными).
Текущий запрос, к которому я это добавляю:
select t1.itemID,t3.color,t2.price
from table_1 t1
LEFT JOIN table_2 t2
ON t1.itemID = t2.itemID
LEFT JOIN table_3 t3
ON t2.colorID = t3.colorID
LEFT JOIN table_4 t4
ON t3.colorID = t4.colorID
WHERE t1.sale_date BETWEEN saleBegin and saleEnd;
Как я могу это запустить? Ожидаемые результаты должны выглядеть так:
itemID цвет цена
1 Blue 10
1 Green 13
2 Blue 14
2 Blue 14
salesmanID
равно нулю в таблице 4, тогда как нам определить, что такоеitemID
? - person onedaywhen   schedule 27.05.2016