【发布时间】: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
【问题讨论】:
-
嗯加入员工公式?
-
不清楚您所说的“组合”是什么意思。您需要向我们展示表
Tickets、CustomerProjects、CustomerSubProjects和EmployeeFormula的定义,这是您想要的输出示例,并在这些表中采样输入数据以生成输出。