首页 文章

子查询在我的SQL查询中返回多于一行

提问于
浏览
1

我正在尝试创建一个SQL查询,显示来自不同表的一些信息 . 但我得到的错误是Subquery返回超过1行的SQL . 我希望它显示多行 .

SELECT  c.Name,
        jn.ID,
        jn.ActualWeight as GrossWt,
        jn.JobNo,
        COUNT(distinct jn.JobNo) as Jobs,
        COUNT(distinct jd.JobID) as Dbriefs,
        COUNT(distinct jn.OutTurn) as Outturns,
        (select Status from jobstat where CompanyID = jn.CompanyID AND Status = "DEL") as Delivery
FROM job_new jn
LEFT JOIN customer c ON  jn.CompanyID = c.Company_ID
LEFT JOIN job_debriefs jd ON jn.JobNo = jd.JobID
LEFT JOIN jobstat js ON jn.CompanyID = js.CompanyID
WHERE jn.CompanyID = 36

我已经尝试添加GROUP BY和ORDER BY,但这也不起作用 . 如果我删除了选择状态....行,它只显示一行,当它应显示超过一百

1 回答

  • 0

    你需要 group by

    SELECT c.Name, jn.ID, jn.ActualWeight as GrossWt, jn.JobNo,
           COUNT(distinct jn.JobNo) as Jobs,
           COUNT(distinct jd.JobID) as Dbriefs,
           COUNT(distinct jn.OutTurn) as Outturns,
           jobstat
    FROM job_new jn LEFT JOIN
         customer c
         ON jn.CompanyID = c.Company_ID LEFT JOIN
         job_debriefs jd
         ON jn.JobNo = jd.JobID LEFT JOIN
         jobstat js
         ON jn.CompanyID = js.CompanyID 
    WHERE jn.CompanyID = 36
    GROUP BY c.Name, jn.ID, jn.ActualWeight as GrossWt, jn.JobNo, js.status
    

    我'm not sure what the subquery is supposed to be doing, so I'猜测 js.status .

    原始查询的问题是在 SELECT 中使用 COUNT() . 这会将查询转换为聚合查询 . 没有 GROUP BY ,只返回一行 . 在大多数其他数据库中,您通常会收到错误 .

相关问题