也许我在看这个问题都错了,但是这里有。
我们有一个数据库,它是我们在办公室使用的一些 CRM 软件的后端。老板想要一个简单的查询来提取客户及其配偶的生日。
表结构如下:
Client Details Table:
Client Name, Client Birthday, Spouse Name, Spouse Birthday, <etc>
我有一个带有案例选择的简单查询,它将确定客户的生日或配偶的生日是下个月的任何时间。
查询压缩如下:
SELECT a.*
FROM
(SELECT
(CASE WHEN <birthday calculation>
ELSE NULL
END) as WhoHasBDay,
ClientName,
SpouseName
FROM
ClientDetailsTable) as a
WHERE
a.WhoHasBDay IS NOT NULL
这将返回客户或配偶在接下来的 X 天内过生日的任何条目。
但是,如果客户和他们的配偶在接下来的 X 天内过生日,我希望查询为每个返回一次结果。
IE,这里是下面的数据
CLIENT X: Birthday in 5 days
CLIENT Y: Spouse's Birthday in 8 days
CLIENT Z: Birthday in 3 days, Spouse's Birthday in 9 days.
我想要的结果集是
CLIENT X BDAY T+5
CLIENT Y SPOUSE BDAY T+8
CLIENT Z BDAY T+3
CLIENT Z SPOUSE BDAY T+9
也许我以错误的方式处理这个问题,在这种情况下,我们将不胜感激有关更好的攻击方法的建议。否则,如果有解决方案,请告诉我。