mysql - 需要帮助组合两个 MySQL 查询

标签 mysql sql

我对 SQL 并不精通,也不知道如何做到这一点。这是我目前的两个疑问。

SELECT TicketID_PK, SubProjectID_FK, ProjectID_FK, CustomerID_FK, TicketDate, TicketNumber, 
SignOff, WorkOrder, ClientPO, TicketType, Description, Processed 
FROM Tickets 
INNER JOIN CustomersSubProjects ON Tickets.SubProjectID_FK = CustomersSubProjects.SubProjectID_PK 
INNER JOIN CustomersProjects ON CustomersSubProjects.ProjectID_FK = CustomersProjects.ProjectID_PK 
WHERE TicketID_PK = 1

SELECT ROUND(WCB+Vacation+Stat+UIC+CPP+Overhead,2) AS Total 
FROM EmployeeFormula 
WHERE EffectiveDate <= $TicketDate
ORDER BY EffectiveDate DESC LIMIT 1

我将 TicketDate 保存为 $TicketDate 并在第二个查询中使用它,但我确信有一种方法可以组合这两个查询来避免这种情况。任何帮助将不胜感激。

编辑:我需要通过将 TicketDate 列(在 Tickets 表中)与 effectiveDate 列进行比较来选择 EmployeeFormula Total(如第二个查询中所示)。所以结果应该是这样的:

TicketID_PK     SubProjectID_FK     ProjectID_FK    CustomerID_FK   TicketDate  TicketNumber    Total
1   1   1   1   2014-01-05  1-0501-00   30.78

最佳答案

像子查询一样使用。

SELECT TicketID_PK, SubProjectID_FK, ProjectID_FK, CustomerID_FK, TicketDate, TicketNumber, 
SignOff, WorkOrder, ClientPO, TicketType, Description, Processed, (SELECT ROUND(WCB+Vacation+Stat+UIC+CPP+Overhead,2) FROM EmployeeFormula WHERE EffectiveDate <= TicketDate ORDER BY EffectiveDate DESC LIMIT 1) AS Total
FROM Tickets 
INNER JOIN CustomersSubProjects ON Tickets.SubProjectID_FK = CustomersSubProjects.SubProjectID_PK 
INNER JOIN CustomersProjects ON CustomersSubProjects.ProjectID_FK = CustomersProjects.ProjectID_PK 
WHERE TicketID_PK = 1

关于mysql - 需要帮助组合两个 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20940689/

相关文章:

sql - 在 Postgresql 中替代 join 语句

sql - NHibernate LINQ BIGINT 类型转换

mysql - 使用多个条件连接 MySQL 上的两个表

mysql - 检索数据的 SQL 查询

sql - 如何在单个 sql 语句中组合更新和删除而不通过索引约束?

mysql - 读取带有 NULL 列的行会导致 slick 异常

sql - 根据顺序有条件地选择行

mysql - 使用 GROUP_CONCAT 时如何按匹配的字段数对行进行排序?

php - 如何使用 Yii2 更新/插入值数组到数据库(一个 id 的多个值重复)

c# - MySql 无法连接到 datagrid wpf