【发布时间】:2019-08-10 19:41:21
【问题描述】:
我有来自 SQL Server 的出勤数据,我必须将其分成 2 列(进出)。
这是一个例子:
这是我想要的结果
查询:
CREATE TABLE [dbo].[Table1]
(
[ID] [varchar](50) NULL,
[DATETIME] [datetime] NULL,
[Flag] [int] NULL
)
INSERT INTO table1
VALUES ('ID-1', '2019-03-13 09:48:00.000', '2'),
('ID-1', '2019-03-13 09:48:00.000', '2'),
('ID-1', '2019-03-13 18:11:00.000', '3'),
('ID-1', '2019-03-13 18:11:00.000', '3'),
('ID-1', '2019-03-14 02:00:00.000', '3'),
('ID-1', '2019-03-14 09:54:00.000', '2'),
('ID-1', '2019-03-14 09:54:00.000', '2'),
('ID-1', '2019-03-14 09:54:00.000', '2'),
('ID-1', '2019-03-14 22:00:00.000', '3'),
('ID-1', '2019-03-14 22:00:00.000', '3'),
('ID-1', '2019-03-14 22:00:00.000', '3'),
('ID-1', '2019-03-15 13:55:00.000', '2'),
('ID-1', '2019-03-15 13:55:00.000', '2'),
('ID-1', '2019-03-15 13:55:00.000', '2'),
('ID-1', '2019-03-15 13:55:00.000', '2'),
('ID-1', '2019-03-15 13:55:00.000', '2'),
('ID-1', '2019-03-15 22:00:00.000', '3'),
('ID-1', '2019-03-15 22:00:00.000', '3'),
('ID-1', '2019-03-15 22:00:00.000', '3'),
('ID-1', '2019-03-15 22:00:00.000', '3')
注意:
标志 2 表示 IN,3 表示 OUT。
入住和退房可能不止一次,所以我们必须先进后出。
可能会超时,所以有时我们必须检查第二天的结帐数据。
我该怎么做?
【问题讨论】:
-
你尝试过什么?
-
好吧,我已经尝试过加入连接,但我无法做到正确我是新手,所以我想不出任何其他方式......如果可以的话,我很抱歉除了图片,我什么都不支持你......
-
欢迎来到 SO。请不要使用图像/图像链接,因为它使我们无法复制粘贴它们。最好的方法是为您的表格包含 CREATE TABLE 和 INSERT INTO 查询
-
好的,我将添加 CREATE TABLE 和 INSERT INTO。谢谢。
标签: sql sql-server database sql-server-2008