mysql - 选择语句: Select referring previous select query

标签 mysql sql

我有两个独立工作的查询;我需要合并这些结果。

  1. 获取从 FromdateToDate 的所有字段(包括 wdateEmpid)。
  2. 根据第一个查询计算特定 wdateEmpid 的值(为了提高效率,Efc)。

第一个查询

SELECT * 
  FROM  tblProductionEffcyDetails 
 WHERE wDate BETWEEN '06/26/2019' AND '07/25/2019' 
   AND worker = 'Techn' 
ORDER BY Empid, wDate

第二个查询

SELECT Cast(ROUND(SUM(Tstdmin) / NULLIF(SUM(TAvlblmin), 0) * 100,0) as int) AS [Efc] 
  FROM  tblProductionEffcyDetails 
 WHERE wDate='07/11/2019'  
   AND Empid='00021'  
GROUP BY wdate, Empid

也就是说,在第二个查询中,wDateEmpid 的值应来自第一个查询的结果。

数据/表格注释:

  • 任何特定日期 (wDate) 或人物 (Empid) 都可以有任意数字 条目数。
  • 效率 (Efc) 每天应仅给出一次 (wDate),即特定 wDate 不应该有多个值。

表结构如下

SL      wDate       Avlbl_Mins  NP_Mins Empid   Name        Process         Model           Efc 
117571  7/13/2019   0           0       21      MARRY       Block removing      900-2930    80 
117572  7/13/2019   0           0       21      MARRY       Microscope checking 900-2929    Null 
116872  6/26/2019   430         75      52      SUGANTHI    Slab removing       900-2929    75 
116873  6/26/2019   0           0       52      SUGANTHI    Slab Removing       900-2528    Null

最佳答案

试试这个,

您可以使用第一个查询获取 06/26/201907/25/2019 之间日期的特定 Empid 集通过将其连接到第二个查询,您可以对其进行总结。

SELECT Empid, Cast(ROUND(SUM(Tstdmin) / NULLIF(SUM(TAvlblmin), 0) * 100,0) as int) AS [Efc] 
  FROM  tblProductionEffcyDetails t
 WHERE t.Empid in ( 
     SELECT Empid 
      FROM  tblProductionEffcyDetails tb
     WHERE tb.wDate BETWEEN '06/26/2019' AND '07/25/2019' 
       AND tb.worker = 'Techn') and t.wDate BETWEEN '06/26/2019' AND '07/25/2019' 
GROUP BY t.wdate, t.Empid

我根据理解您的问题进行了查询,如果没有得到您想要的输出,请告诉我。这样我就可以更改答案。

希望这有帮助。

关于mysql - 选择语句: Select referring previous select query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57049832/

相关文章:

mysql - 分组到最接近的小时的 30 分钟间隔

php - 访问未声明的静态属性:mysqli::$insert_id

mysql - 如何将数据复制并粘贴到 MySQL Workbench 表中?

sql - SQL Server 标识函数是否可重现

sql - hstore:无法连接两个 hstore 值

MySQL 使用表名作为函数

php - 将 Joomla 从 2.5.28 更新到 3.4.0

sql - 通过链接表组合相互关联的表,不用担心链接表是否缺少某些数据

mysql - 获取 SELECT 语句中的最后 3 行并使其成为 ASC 顺序

mysql - 如何优化缓慢的 MySQL 查询