Sql 日期计算,分区/行函数的可能使用
我有一个包含发票级别数据的表,我有一个业务请求,用于创建一个包含将奖励给销售代表的新业务美元的表 逻辑如下: 如果在过去6个月内没有向该客户进行销售,或者如果该客户是表中不存在的新客户,则将销售计入“新业务”。 在首次符合“新业务”销售资格后,新业务信贷将持续3个月。 为了简单起见,表结构Sql 日期计算,分区/行函数的可能使用,sql,if-statement,case,teradata,Sql,If Statement,Case,Teradata,我有一个包含发票级别数据的表,我有一个业务请求,用于创建一个包含将奖励给销售代表的新业务美元的表 逻辑如下: 如果在过去6个月内没有向该客户进行销售,或者如果该客户是表中不存在的新客户,则将销售计入“新业务”。 在首次符合“新业务”销售资格后,新业务信贷将持续3个月。 为了简单起见,表结构 Customer # - Invoice # - Invoice Dt - Total $$ 听起来很简单,但在sql中构建它时遇到了一些问题。有什么想法吗?一步一步来 以前的客户超过3个月但不足6个月
Customer # - Invoice # - Invoice Dt - Total $$
听起来很简单,但在sql中构建它时遇到了一些问题。有什么想法吗?一步一步来 以前的客户超过3个月但不足6个月
SELECT CustomerNo
FROM TABLE_NAME_YOU_DID_NOT_TELL_US
WHERE InvoiceDt > CURRENT_DATE - 6 MONTHS -- newer than 6 months
AND InvoiceDt < CURRENT_DATE - 3 MONTHS -- older than 3 months
现在把过去三个月里所有不包括这些的东西都拿出来
CREATE VIEW NEW_CUSTOMERS AS
SELECT *
FROM TABLE_NAME_YOU_DID_NOT_TELL_US
WHERE InvoiceDt > CURRENT_DATE - 3 MONTHS -- newer than 3 months
AND CustomerNo NOT IN (
SELECT CustomerNo
FROM TABLE_NAME_YOU_DID_NOT_TELL_US
WHERE InvoiceDt > CURRENT_DATE - 6 MONTHS -- newer than 6 months
AND InvoiceDt < CURRENT_DATE - 3 MONTHS -- older than 3 months
)
您也可以通过连接来实现这一点。我在sql中构建它时遇到了一些问题,这意味着您尝试了任何东西。请出示你尝试过的证据。除了得到更相关的答案外,它还表明你已经付出了努力。您还应该显示表结构、示例输入数据和所需的输出数据。请不要期望人们猜测。样本数据最好用+。请将您的问题包括在内,包括您当前的尝试和期望的结果。创建表在这里并不意味着什么。您是指视图吗?请编辑您的问题并显示您想要的结果。这是相当不清楚的。