【发布时间】:2012-09-07 18:34:21
【问题描述】:
我有一张如下表
CREATE TABLE Customers_History(Row_Id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, Cust_Name VARCHAR(255), Created_Date 日期, Cust_Status TINYINT)表格中的行如下
插入客户历史记录(客户名称、创建日期、客户状态) VALUES('客户 A', '20120516', 0), ('客户 B', '20120516', 0), ('客户 C', '20120516', 0), ('客户 A', '20120517', 1), ('客户 B', '20120517', 0), ('客户 C', '20120517', 0), ('客户 A', '20120520', 1), ('客户 B', '20120520', 0), ('客户 C', '20120520', 1), ('客户 A', '20120521', 0), ('客户 B', '20120521', 0), ('客户 C', '20120521', 1), ('客户 A', '20120526', 1), ('客户 B', '20120526', 1), ('客户 C', '20120526', 0);我想要一个查询,通过将日期作为参数,输出如下所示
当我将 20120517 作为日期参数传递时,它应该将客户 A 带到哪里,因为它的状态从 0 变为 1
客户 A当我将 20120520 作为日期的参数传递时,它应该将客户 C 带到哪里,因为它的状态从 0 变为 1
客户 C当我将 20120526 作为日期参数传递时,它应该将客户 B 带到哪里,因为它的状态从 0 变为 1
客户 B我想要特定日期的客户名称,其状态第一次从 0 变为 1。
注意:当我将 20120526 作为日期的参数传递时,它不应该带来客户 A,因为客户 A 状态在 17 本身从 0 更改为 1。
【问题讨论】:
-
一个名为“客户”的表我希望只包含唯一客户,而不是每个客户的陈述数量。而是创建一个单独的表 CustomerStates,其中包含此数据并通过 CustomerID 链接到客户。
-
我正在此表中跟踪客户历史记录。如果我按照您所说的创建单独的表,我如何在该表中跟踪客户状态
-
然后将其命名为 CustomerHistory。当前表表明它是您的客户表,其中包含实际客户。
-
好吧,我也修改了答案。
标签: mysql sql database data-modeling