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