【问题标题】:Inner Join and Count throwing up errors内部连接和计数抛出错误
【发布时间】:2018-08-03 09:31:06
【问题描述】:

当谈到 SQL 时,我还是个新手,我想知道您是否可以提供帮助。我被要求加入两个表(我认为这是一个内部联接)并对结果进行计数和分组。

我写的代码是:

SELECT publisher.name, printjob.JobNo, r.CountPO
    FROM Publisher, PrintJob
    INNER JOIN  (SELECT purchaseorder.orderno count (*) as CountPO, FROM purchaseorder
GROUPBY publisher.name) as r ON 
as ORDER BY publisher.name;

但它指出 FROM 不是它应该在的地方。我不确定是不是这样,任何建议将不胜感激。

塔!

编辑:好的,我已将以上内容更正为:

SELECT PrintJob.JobNo, count (*) as POS FROM PurchaseOrder INNER JOIN PrintJob WHERE purchaseorder.printjob = printjob.jobno GROUP BY publisher.name;

还是一无所获。

哭泣

【问题讨论】:

  • GROUP - GROUPBY 后面应该有一个空格。 orderno 和 count(*) 之间缺少逗号。另外,PublisherPrintJob 之间的连接条件是什么?
  • 这么多错误:不要不要混合使用隐式连接和显式JOIN 运算符。 GROUPBY 应该是GROUP BY,去掉CountPO 之后的, FROM。删除表别名的 asON as ... 也缺少一些东西。
  • 天哪。 :( 我会修改以上内容,但今天似乎不太顺利。
  • SELECT publisher.name, printjob.JobNo, r.CountPO FROM Publisher, PrintJob INNER JOIN (SELECT purchaseorder.orderno, count (*) as CountPO FROM purchaseorder GROUP BY publisher.name) r ON ORDER BY出版商名称;它仍然没有留下深刻的印象。

标签: sql oracle join oracle10g


【解决方案1】:

你在错误的地方昏迷了:

SELECT purchaseorder.orderno, count (*) as CountPO FROM purchaseorder
GROUPBY publisher.name

并且您需要在内部查询中进行分组。 在 ON 之后你需要一些加入条件。

另外,在一个查询中使用 2 种类型的连接也不好:

FROM Publisher, PrintJob

应该通过加入到处做:

FROM Publisher as p
inner join PrintJob as pj on [some condition]
INNER JOIN  (SELECT purchaseorder.orderno count (*) as CountPO, FROM purchaseorder
GROUPBY publisher.name) as r ON [some condition]

【讨论】:

  • 谢谢,上面我已经修改了:)
猜你喜欢
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2014-01-24
  • 2016-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多