使用TSQL查询帮助(连接函数)

时间:2011-04-10 00:13:30

标签: sql sql-server tsql

我要做的是将客人的逗留期限乘以他们的房价,添加发票(对于他们可能在度假村进行的任何购买)并添加餐费账单以给他们一个以客人名义逗留的费用。

我有以下查询:

SELECT gr.g_name, (DATEDIFF(d, r.res_checkout_date, r.res_checkin_date) * pp.rate ) + ISNULL(i.inv_amount, 0) + ISNULL(d.total_dining, 0)
FROM guest_reservation gr 
LEFT OUTER JOIN invoice i ON gr.confirm_no = i.confirm_no
JOIN reservation r ON gr.confirm_no = r.confirm_no
JOIN price_plan pp ON r.price_plan = pp.price_plan;
LEFT OUTER JOIN (SELECT r_confirmation_no, SUM(price) as total_dining
                 FROM dining_order do JOIN dining_menu dm ON do.item = dm.item 
                 GROUP BY r_confirmation_no, price) as d ON d.r_confirmation_no = r.confirm_no

当我运行该查询时,我收到以下错误消息:

“Msg 156,Level 15,State 1,Line 6 关键字“LEFT”附近的语法不正确。 Msg 156,Level 15,State 1,Line 8 关键字'as'附近的语法不正确。“

有什么想法吗?

以上查询使用以下表格:

来宾预订表包含以下包含数据的列:

  • confirm_no
  • AGENT_ID
  • g_name
  • g_phone

预订表包含以下带有数据的列:

  • confirm_no
  • credit_card_no
  • res_checkin_date
  • res_checkout_date
  • default_villa_type
  • price_plan

发票表包含以下带有数据的列:

  • inv_no
  • inv_date
  • inv_amount
  • confirm_no

价格计划表包含以下带有数据的列:

  • price_plan
  • default_villa_type
  • bed_type

1 个答案:

答案 0 :(得分:3)

语法错误是因为;中的pp.price_plan;