0

我有 2 个表,一个包含活动生成信息,另一个包含新合同信息。最终,我要做的是查看活动日期后的 30 天内是否生成了新合同。例如:

活动

合同

第一个表是活动表,第二个是合同表。例如,您将看到,账户 ABC123 在活动日期后 30 天内确实有一份新合同 - CT-7135。然而,尽管 CT-7695 存在于表中并与账户 ABC123 关联,但它不会满足自活动日期以来在 30 窗口之外开始的“新合同”要求。

然而,账户 GJ1234 将是“否”b/c,在活动日期后 30 天内表中没有合同。同样,CGE435(因为 CT-4389)和 GHE568(因为合同 CT-4389、CT-8080 和/或 CT-6690 ----但不是因为 CT-6829)都符合条件。

我想我的问题是尝试在活动日期 b/c 之外进行此动态连接,每个行项目都不同。

想法?

谢谢。

4

2 回答 2

0

尝试这个:

Select Distinct AccountId
From Accounts a
Where Exists
    (Select * From contracts
     Where AccountId = a.AccountId
       And ContractDate >= a.ActivityDate
       And DateDiff(day, a.ActivityDate, ContractDate) <= 30)
于 2013-06-04T18:09:53.130 回答
0

以下将查找在活动后 30 天内拥有新合同的所有帐户:

SELECT * FROM activities AS A WHERE AccountID IN (SELECT DISTINCT(AccountID) from contracts WHERE ContractStartDate >= A.ActivityDate AND ContractStartDate <= DATE_ADD(A.ActivityDate, INTERVAL DAY 30))
于 2013-06-04T18:13:06.763 回答