1
我被困在一个查询中,我试图获取仅在某个日期范围内新获取的客户信息。查看一个日期范围内的数据并从另一个日期范围计数
我需要获得在一年中前6个月中首次下单的顾客名单。然后,我需要在过去6个月内获得他们的发票,第一张发票日期,最后一张发票日期和订单计数的总计。
我使用了HAVING子句来确保我只查看在6个月期间内放置其第一个订单的客户,但由于我们现在已经过去那段时间,所以总发票信息和订单计数信息将包括已下达订单过了这段时间。我考虑在“最后发票日期”的HAVING条款中加入限制条款,但是我消除了第一个订单日期在6个月内的客户,并且在此之后订购。我不知道下一步该做什么,也没有找到类似问题的运气。这是我到目前为止:
SELECT c.customer, MAX(c.name) AS Name,
SUM(
CASE WHEN im.debit = 0
THEN im.amount * -1
ELSE im.amount
END
) AS TotalInvoiceAmount,
MIN(
im.date) AS FirstInvoiceDate,
MAX(
im.date) AS LastInvoiceDate,
COUNT(DISTINCT om.[order]) AS OrderCount
FROM invoicem im
INNER JOIN customer c ON im.customer = c.customer
FULL JOIN orderm om ON im.customer = om.customer
WHERE im.amount <> 0
GROUP BY c.customer
HAVING MIN(im.date) BETWEEN '01-01-2015' AND '06-30-2015'
ORDER BY c.customer
谢谢!虽然我收到了错误,但是它声明:列'invoicem.customer'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。 和 无法绑定多部分标识符“c.customer” – DisplayBee
@DisplayBee指的是您的子查询。请参阅编辑 –
谢谢。我仍然遇到c.customer问题。我不明白为什么它不承认,但我仍然在努力学习! – DisplayBee