表a
有时间、宽度、长度三个字段。
表b
有宽度、长度、面积三个字段。现在需要根据时间对表a查询 并根据小时分组 得到 平均宽度 和 平均长度 和 时间
得到根据时间分组后的 平均长度和宽度, 去表B里面匹配,得到表B里面对应平均宽度和长度的面积我想写的SQL
select A.avg(宽度),A.avg(长度),A.时间,B.面积 
from 
      (select  avg(宽度),avg(长度),时间 
        from 表a 
         where 时间>= ? 
        group by 小时) A
left join 表B
on A.avg(宽度) = B.款单
and A.avg(长度) = B.长度但是提示sql有ERROR
求教大神应该怎么写,还是说这种方式根本无法实现

解决方案 »

  1.   

    如果你贴的是正式运用的SQL语句,则错误很多,比如 ,不对,另外这个 时间>= ? 也不对。 建议提问时贴出实际语句及完整的错误提示。select A.x1,A.x2,A.时间,B.面积 
    from 
          (select  avg(宽度) as x1,avg(长度) as x2,时间 
            from 表a 
             where 时间>= ? 
            group by 小时) A
    left join 表B
    on A.x1  = B.款单
    and A.x2  = B.长度
    提问的智慧
      

  2.   

    改成这样,应该就能运行了:SELECT A.xx,A.yy,A.时间,B.面积 
    FROM 
          (SELECT  AVG(宽度) AS xxAVG(长度) yy,时间 
            FROM 表a 
             WHERE 时间>= ? 
            GROUP BY 小时) A
    LEFT JOIN 表B
    ON A.xx = B.款单
    AND A.yy = B.长度
    另外,注意逗号要用 英文的逗号