Ι有一些表(例如[Table1],[Table2],[Table3]等)与[ID]作为主键和一个RecTime作为DATETIME每个.
ΑlsoΙ有一个表[Files],用于保存varbinary(max)列中的文件,并引用具有其名称和ID的其他表.
[Table2],[Table3]和其他人有不同的结构,但完全分享[ID]和[RecTime]列[Table1]
以下是可视化数据的快速示例.
DECLARE @Table1 as table (
[ID] [bigint]
, [RecTime] [datetime]
)
DECLARE @Table2 as table (
[ID] [bigint]
, [RecTime] [datetime]
)
DECLARE @Table3 as table (
[ID] [bigint]
, [RecTime] [datetime]
)
DECLARE @Files as table (
[ID] [bigint]
, [tblName] nvarchar(255) NULL
, [tblID] bigint NULL
, [BinaryData] varbinary(max)
/* …Run Code Online (Sandbox Code Playgroud) 我有以下 3 个相关表
Schools Departments Classes
--------------- ------------------ -----------------
ID ID ID
School_Name ID_Schools ID_Departments
Department_Name Class_Name
Run Code Online (Sandbox Code Playgroud)
和一些关于它们包含的内容的样本(我会尽可能地画出来)
---- Schools ---
ID School_Name
----------------
1 School_1 <----------------------\
2 School_2 |
n ........ |
|
---- Departments ---------------- |
ID ID_Schools Department_Name |
--------------------------------- |
1 1 Dept_1 <-----------/ -->--\
2 1 Dept_2 <-----------/ -->--|------\
3 2 Dept_1 | |
n .. ...... | |
| |
---- Classes ------------------- | |
ID ID_Departments Class_Name | |
-------------------------------- | |
1 …Run Code Online (Sandbox Code Playgroud) 给出以下表1:
RefID intVal SomeVal
----------------------
1 10 val01
1 20 val02
1 30 val03
1 40 val04
1 50 val05
2 10 val06
2 20 val07
2 30 val08
2 40 val09
2 50 val10
3 12 val11
3 14 val12
4 10 val13
5 100 val14
5 150 val15
5 1000 val16
Run Code Online (Sandbox Code Playgroud)
和Table2包含一些RefID和intVals之类的
RefID intVal
-------------
1 11
1 28
2 9
2 50
2 51
4 11
5 1
5 150
5 151
Run Code Online (Sandbox Code Playgroud)
需要一个SQL语句来获取每个RefID的下一个更大的intValue和NULL,如果在Table1中找不到,则下面是预期的结果
RefID intVal nextGt SomeVal …Run Code Online (Sandbox Code Playgroud) 我有两个约会:
2012-10-04 12:48:56:000 和 2012-10-04 12:48:58:000
预期的结果是
2012-10-04 12:48:57:000
2012-10-04 12:48:56:000 和 2012-10-04 12:48:56:010
预期的结果是
2012-10-04 12:48:56:005
(日期是虚构的,因为在sql server中,毫秒部分DATETIME数据类型增加3)
我有一个自我相关的表myTable像:
ID | RefID
----------
1 | NULL
2 | 1
3 | 2
4 | NULL
5 | 2
6 | 5
7 | 5
8 | NULL
9 | 7
Run Code Online (Sandbox Code Playgroud)
我需要在任何深度上获得叶子行
根据上表,结果必须是:
ID | RefID
----------
3 | 2
4 | NULL
6 | 5
8 | NULL
9 | 7
Run Code Online (Sandbox Code Playgroud)
谢谢
PS:深度可能会有所不同,这里的例子非常小
