我有一个如下所示的表格.我想要的是彼此连续的行被组合在一起 - 对于每个"ID".列IsContinued标记下一行是否应与当前行组合
我的数据如下:
+-----+--------+-------------+-----------+----------+
| ID | Period | IsContinued | StartDate | EndDate |
+-----+--------+-------------+-----------+----------+
| 123 | 1 | 1 | 20180101 | 20180404 |
+-----+--------+-------------+-----------+----------+
| 123 | 2 | 1 | 20180501 | 20180910 |
+-----+--------+-------------+-----------+----------+
| 123 | 3 | 0 | 20181001 | 20181201 |
+-----+--------+-------------+-----------+----------+
| 123 | 4 | 1 | 20190105 | 20190228 |
+-----+--------+-------------+-----------+----------+
| 123 | 5 | 0 | 20190401 | 20190430 |
+-----+--------+-------------+-----------+----------+
| 456 | …Run Code Online (Sandbox Code Playgroud) 这是我的表:
ID Name Department
1 Michael Marketing
2 Alex Marketing
3 Tom Marketing
4 John Sales
5 Brad Marketing
6 Leo Marketing
7 Kevin Production
Run Code Online (Sandbox Code Playgroud)
我想找到ID范围Department = 'Marketing':
Range From To
Range1 1 3
Range2 5 6
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.
在我的选择中,我使用这样的语句来添加第二个单元格(如果它不为空),并将单元格归零(如果它为null).
Child.Tag + '@' + ISNULL(CONVERT(varchar(50),parent.Tag),'') as 'Location'
Run Code Online (Sandbox Code Playgroud)
如果有父位置,则返回F123 @ A123的位置.但是如果没有父位置,它将返回F123 @,我希望它只返回F123.
我已将选择调整为:
Child.Tag + CASE Parent.Tag when null then '' else '@' end
Run Code Online (Sandbox Code Playgroud)
但是,如果父位置为空,则仍会返回F123 @.
有没有人知道如何让它停止返回'@',并且如果有人解释为什么我的CASE语句不起作用也会非常感激.
谢谢.
(其他信息:我在SSMS 2008上)
要计算符合条件列表的行中的项目数,并将结果放置在该行的errorcnt列中。实际数据有15个条件和一百列。我认为此示例应说明我的追求。
CREATE TABLE #MyList
(
Item1 NVARCHAR(100),
Item2 NVARCHAR(100),
date1 DATE,
Date2 date,
errorcnt int
)
INSERT INTO #MyList
(
Item1,
Item2,
Date1,
Date2
)
VALUES
('Dog','Puppy', '2020-01-01', '2030-01-01'),
('Cat', 'Kitten', '2020-02-02', '2020-03-03')
Run Code Online (Sandbox Code Playgroud)
要计数的样本条件:
When Item1 <> Dog, OR
when Item2 <> puppy, OR
when Date2>date1
Run Code Online (Sandbox Code Playgroud)
每个记录都应计算在内,因此在记录2中,
Item1 <> Dog = 1
Item2 <> puppy = 1
Date 2 > Date 1 = 1
Total 3 errors.
Run Code Online (Sandbox Code Playgroud)
第2行的输出为:
Cat, Kitten, 2020-02-02, 2020-03-03, 3
Run Code Online (Sandbox Code Playgroud)
新手,不知道如何做到最好。