【问题标题】:Need Help Combining Two MySQL Queries需要帮助组合两个 MySQL 查询
【发布时间】:2014-01-06 08:00:20
【问题描述】:

我在 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 列(在门票表中)与 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

【问题讨论】:

  • 嗯加入员工公式?
  • 不清楚您所说的“组合”是什么意思。您需要向我们展示表 TicketsCustomerProjectsCustomerSubProjectsEmployeeFormula 的定义,这是您想要的输出示例,并在这些表中采样输入数据以生成输出。

标签: mysql sql


【解决方案1】:

像子查询一样使用。

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

【讨论】:

  • 这很简单,谢谢。我以前没有真正使用过子查询,并认为我必须加入。
猜你喜欢
  • 2016-09-13
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多