Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用派生表进行完全外部联接-mysql_Mysql_Sql_Join - Fatal编程技术网

使用派生表进行完全外部联接-mysql

使用派生表进行完全外部联接-mysql,mysql,sql,join,Mysql,Sql,Join,我在两个表上进行完全外部联接时遇到问题,我使用的sql如下所示: SELECT a.sryear, b.reqyear, a.mid, b.description, sum(a.kmq + b.rmq) as sum FROM (select EXTRACT(YEAR FROM t.date) AS srYear, m.materialid as mid, m.description, sum(km.quantity) as

我在两个表上进行完全外部联接时遇到问题,我使用的sql如下所示:

SELECT
  a.sryear,
  b.reqyear,
  a.mid,
  b.description,
  sum(a.kmq + b.rmq) as sum 
FROM
  (select
    EXTRACT(YEAR 
  FROM
    t.date) AS srYear,
    m.materialid as mid,
    m.description,
    sum(km.quantity) as kmq 
  FROM
    kit k,
    kitmaterial km,
    materials m,
    service s,
    transaction t 
  WHERE
    t.serviceid=s.serviceid 
    AND s.kitid=k.kitid 
    AND k.kitid=km.kitid 
    AND km.materialid=m.materialid 
  GROUP BY
    srYear,
    m.materialid 
  ORDER BY
    srYear,
    m.materialid) as a FULL 
OUTER JOIN
  , (
    SELECT
      EXTRACT(YEAR 
    FROM
      r.datecreated) AS reqYear,
      m.materialid as mid,
      m.description as description,
      sum(rm.quantity) as rmq 
    FROM
      requisitionmaterial rm,
      materials m,
      requisition r 
    WHERE
      rm.materialid=m.materialid 
      AND r.requisitionid=rm.requisitionid 
    GROUP BY
      reqYear,
      m.materialid 
    ORDER BY
      reqYear,
      m.materialid
  ) as b 
    ON a.mid=b.mid 
    AND a.sryear=b.reqyear;
如有任何协助,将不胜感激


谢谢

在内联视图
a
b
按预期工作的情况下,存在一个问题

SELECT
  ....
  sum(a.kmq + b.rmq) as sum 
SUM()
是聚合函数。因此,如果没有
分组依据
,则无法使用。你是说这个吗

SELECT
  ....
  a.kmq + b.rmq as `sum`

否则,在内联视图
a
b
按预期工作的情况下,应将GROUP BY与某些列一起使用,但存在一个问题

SELECT
  ....
  sum(a.kmq + b.rmq) as sum 
SUM()
是聚合函数。因此,如果没有
分组依据
,则无法使用。你是说这个吗

SELECT
  ....
  a.kmq + b.rmq as `sum`

否则,您应该将GROUP BY与某些列一起使用

这太复杂了。若能尽量减少sql查询,只需要列、表即可。描述一下你的问题。你想打印什么?编辑太复杂了。若能尽量减少sql查询,只需要列、表即可。描述一下你的问题。你想打印什么