SQL如何查询2个表,它们之间没有关系

时间:2012-11-25 20:10:56

标签: sql sql-server join multi-table

我有2张桌子。

我需要的输出是:

  1. Supplier_id
  2. supplier_name
  3. Grade_id
  4. grade_name
  5. CUSTOMER_NAME
  6. CUSTOMER_ID
  7. 我正在使用的查询是:

    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”。

    有什么想法吗?

0 个答案:

没有答案