USE [lysk2]
GO
/****** Object: StoredProcedure [dbo].[P_EvacuateNodes] Script Date: 2023/11/30 8:25:41 ******/
SET
ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[P_EvacuateNodes] @node int = 999 as begin truncate table CalStartTab;
EXEC P_CalculateStartProc @node;
truncate table CalEndTab;
EXEC P_CalculateEndProc @node;
truncate table EvacEvenNodesTab;
insert into
EvacEvenNodesTab
SELECT
tp.*
FROM
(
SELECT
TOP 100 PERCENT ROW_NUMBER() OVER (
partition BY ddid
ORDER BY
wtime
) AS rowNum,
sid,
tid,
ygid,
wtime,
ddid
FROM
WFRecord
WHERE
id IN (
SELECT
id
FROM
WFRecord wf
INNER JOIN CalStartTab s ON wf.ddid = s.ddid
INNER JOIN CalEndTab e ON wf.ddid = e.ddid
WHERE
(
sid = @node
OR tid = @node
)
AND wtime >= s.minTime
AND wtime <= e.maxTime
GROUP BY
wf.ddid,
wf.id
)
ORDER BY
wtime
) tp
WHERE
tp.rowNum % 2 = 0 truncate table EvacOddNodesTab;
insert into
EvacOddNodesTab
SELECT
tp.*
FROM
(
SELECT
TOP 100 PERCENT ROW_NUMBER() OVER (
partition BY ddid
ORDER BY
wtime
) AS rowNum,
sid,
tid,
ygid,
wtime,
ddid
FROM
WFRecord
WHERE
id IN (
SELECT
id
FROM
WFRecord wf
INNER JOIN CalStartTab s ON wf.ddid = s.ddid
INNER JOIN CalEndTab e ON wf.ddid = e.ddid
WHERE
(
sid = @node
OR tid = @node
)
AND wtime >= s.minTime
AND wtime <= e.maxTime
GROUP BY
wf.ddid,
wf.id
)
ORDER BY
wtime
) tp
WHERE
tp.rowNum % 2 = 1
end
突然翻到之前自己写的存储过程 现在看看都是头皮发麻 公司框架用的还是 .Net Framework 4.5
直接用 CYQ.Data 和数据库交互 sql 中 order by 还失效 必须先查询加载到内存后再排序
之前一直用的是 EF 或者 EF Core 也用过 SqlSugar 这样的第三方框架
1
ZGame 248 天前
SqlSugar 挺好用的,存储过程更像调用别人写的方法,适合交付和程序对接使用吧。
|
2
Braisdom 248 天前 1
现在已经很少有人用 ORM 了,
1 )我总曾经的开源项目: https://github.com/braisdom/ObjectiveSql 已经好久没更新了, 2 )我现在的商业化项目: https://www.agiquery.com 已经不用写 SQL 了哈哈 |
5
matrix1010 248 天前 via iPhone 2
@Braisdom 你的项目不更新就代表很少有人用 ORM?
|
7
Removable 248 天前
@matrix1010 #5 要创业嘛,不说点夸张的话,怎么能吸引到使用者呢 (狗头
|
8
Braisdom 248 天前 1
@matrix1010 当然不是了,我自己用了很多年的 ORM ,ORM 只能解决很少的问题,可能适用少部分项目,我做的大都数项目都不用 SQL 型数据库了,所以 ORM 也就更用不上了。
目前,系统数据库我都不会先 SQL 型数据库,只有在数据分析行业才会有 SQL 型数据库,但数据分析型项目,ORM 解决的问题太少了,大都数都是手写 SQL 。 所以,我才会做 Agile Query 项目,它自身的数据存储不是 SQL 型数据库,ORM 也就没用了。 |
9
Braisdom 248 天前 1
@heyline 和 cube.js 最核心的区别是:Agile Query 做数据分析不需要关心 JOIN ,还有很多领域分析函数,像:同环比,占比,分类等。
|
11
Braisdom 248 天前 1
@perbugwei 不是数据支撑,当你项目做过了以后就会感觉,系统数据用 SQL 型数据库存储,会使代码很复杂,现在很多非 SQL 型数据库,对编程很友好的,建议试试。
|
12
ericguo 248 天前 1
现在软广的水平已经那么高了么?
|
14
Braisdom 248 天前 1
@perbugwei 我现在用的是 arangodb , 主要是支持 图,全文搜索,Embedding ,还有简单的关系统计,它的查询语言与编程语言比较接近,我的 Agile Query 主要用到的也就这些,他还有很多其它的能力,
|
15
cndenis 248 天前 1
这种同时用上开窗, 聚合, JOIN, 子查询的的 SQL, 原生 SQL 是王道, 用 ORM 才是让人头疼的事
|
16
matrix1010 248 天前
@Removable 这已经算造谣了,就算是 APIJSON 宣传也是夸自己多万能而不是说 xxx 已经没人用了。错误的宣传只会起到反作用
|
18
nian8 248 天前
感觉像是 excel + 搜索 + 自定义规则/函数
数据来源及元数据的信息需要很熟悉,才能用起来吧 我没用过。。。 |
20
leegradyllljjjj 248 天前
@Braisdom 这不就是个报表?
|
21
Braisdom 248 天前
@leegradyllljjjj 差不多是这个样子,但 Agile Query 做一个报表只要几秒钟,而且还不需要二次开发,哈哈
|