0

私は2つのテーブルを持っています。

私が必要とする出力は次のとおりです。

  1. Supplier_id
  2. サプライヤ名
  3. Grade_id
  4. 学年名
  5. 顧客名
  6. 顧客ID

私が使用しているクエリは次のとおりです。

select distinct gs.Supplier_id,s.supplier_name,gs.Grade_id,g.grade_name,
c.customer_name,c.customer_id
 from tbl_Customer c, tbl_GradeSupplier gs
left join tbl_Suppliers s on s.supplier_ID = gs.Supplier_id
left join tbl_Grades g on g.grade_id = gs.Grade_id

ただし、このクエリの戻り値に、これらのそれぞれの現在の日付より前の有効な最高の日付と、その日付の古い価格を追加する必要があります。この情報は、保持する価格表で見つけることができます

price_id    grade_id    supplier_id price_purchase_value    price_validfromdate customer_id price_sell_value    price_deleted
41  8   24  2190.00 2012-09-09 00:00:00.000 4   2280.00 NULL

私はこれをやろうとしました:

select distinct gs.Supplier_id,s.supplier_name,gs.Grade_id,g.grade_name,
c.customer_name,c.customer_id
 from tbl_Customer c, tbl_GradeSupplier gs
left join tbl_Suppliers s on s.supplier_ID = gs.Supplier_id
left join tbl_Grades g on g.grade_id = gs.Grade_id
inner join
(select  grade_id,customer_id,max(price_validfromdate) as validfrom
 from  tbl_Prices a
where price_validfromdate <= GETDATE()
group by supplier_id,grade_id,customer_id) prices
on prices.customer_id = c.customer_id and prices.grade_id = gs.Grade_id

これにより、次のエラーが表示されます。マルチパート識別子「c.customer_id」をバインドできませんでした。

何か案は?

4

0 に答える 0