create table section (
sectionId int
, sectionName varchar(32)
, dateCreated date
-- maybe some other fields that describe the section
-- status
)
create table inventoryItem (
itemId int
, itemName varchar(32)
, sectionId int
, description varchar(255)
, photoLocation varchar(255)
, dateCreated date
, dateLastModified date
, status int
, price numeric
, salePrice numeric NULL
)
####
create table itemPrice (
itemId int
, price numeric
, type int -- 0 for normal, 1 for sale
, validFrom date NULL
, validTo date NULL
)
####
select s.sectionName
, i.itemId
, i.itemName
-- other inventoryItem columns as needed
, p1.price
, "sale_price" = p2.price
from section s left join inventoryItem i
on s.sectionId = i.sectionId
left join itemPrice p1
on i.itemId = p1.itemId and p1.type = 0
left outer join itemPrice p2
on p1.itemId = p2.itemId and p2.type = 1
and p2.fromDate < getdate() and p2.toDate > getdate()
####
itemId price sale_price
---------- ------- ---------- -------------------- --------------------
section 1 1 item 1 24.990000 NULL
section 1 2 item 2 19.990000 14.990000