加入多个表并收到错误

时间:2013-10-21 03:25:32

标签: sql oracle

我正在尝试在SQL中生成报告,但我一直遇到错误。

这是我的代码:

CREATE VIEW REPORT1 AS
SELECT c.ChannelNumber, s.SupplierName, p.PackageID, pro.ProgramName, r.RatingCode, sch.ShowTime
FROM Program pro
LEFT OUTTER JOIN Rating r
ON pro.RatingID = r.ratingID 
LEFT OUTTER JOIN Supplier s
ON pro.SupplierID = s.SupplierID
LEFT OUTTER JOIN Schedule sch
ON pro.ProgramID = sch.ProgramID
LEFT OUTTER JOIN Channel c
ON shc.ChannelID = c.ChannelID
LEFT OUTER JOIN ChannelPackage cp
ON ch.ChannelID = cp.ChannelID
LEFT OUTER JOIN  Package p
ON cp.PackageID = p.PackageID
WHERE  sch.ShowTime  = '14-OCT-13'
ORDER BY ch.ChannelNumber, p.ProgramName;

我在第4行中一直收到错误,指出“ORA-00905:丢失关键字”我已经尝试了一个多小时而无法弄清楚我做错了什么。有什么想法吗?

*更新编辑*

谢谢你们!

这是我更新的代码:

    CREATE VIEW REPORT1 AS
SELECT c.ChannelNumber, s.SupplierName, p.PackageID, pro.ProgramName, r.RatingCode, sch.ShowTime
FROM Program pro
    LEFT JOIN Rating r  ON pro.RatingID = r.ratingID 
    LEFT JOIN Supplier s ON pro.SupplierID = s.SupplierID
    LEFT JOIN Schedule sch ON pro.ProgramID = sch.ProgramID
    LEFT JOIN Channel c ON sch.ChannelID = c.ChannelID
    LEFT JOIN ChannelPackage cp ON c.ChannelID = cp.ChannelID
    LEFT JOIN  Packages p ON cp.PackageID = p.PackageID
WHERE  sch.ShowTime  =  &ShowTime
ORDER BY c.ChannelNumber, pro.ProgramName;

该报告现在可以正常工作,但它仍然没有正确显示频道编号,但我认为这是由于我在开始时配置表格的错误。

2 个答案:

答案 0 :(得分:2)

你在前4个连接中拼错了“外”错误。由于您的第一次联接是在第4行,因此DB列出了编译错误

答案 1 :(得分:0)

外面是不必要的。只需使用LEFT JOIN。 它的"外部"不是" outter"。