news 2026/9/26 9:15:25

Sql server查看昨日新增和累计积分:用 TaoToken 统一 Key 跑通查询脚本

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Sql server查看昨日新增和累计积分:用 TaoToken 统一 Key 跑通查询脚本

1. 从一张积分流水表说起:昨日新增和累计积分到底怎么查

做运营对账的朋友大概率遇到过这种需求:每天早上打开后台,想看一眼昨天新增了多少积分、当前累计积分池还剩多少。听起来简单,真写起 SQL 来却容易翻车——日期边界没对齐、跨天数据算重、累计口径和新增口径混在一起。

这篇就聚焦 Sql server 里统计昨日新增积分与累计积分的查询场景,面向需要每日对账的运营或开发人员。我会先给出一套可复制的建表与查询 SQL 骨架,再演示怎么通过 TaoToken 统一 Key 在 Cline 的 settings.json 里完成配置,让 AI 辅助你写 SQL、改 SQL、验证 SQL,最后用一条验证查询确认昨日新增与累计积分结果正确。

核心检索词先摆出来:Sql server 查昨日新增积分、累计积分统计、按天对账查询。适合谁?每天要出积分日报的运营、写对账脚本的后端、以及想用 AI 帮自己写 SQL 但不想来回切账号的开发者。

先说结论:昨日新增靠日期函数卡边界,累计积分靠全量聚合或余额字段,两者口径必须分开写,别用一条 SQL 硬凑。下面一步步来。

2. 建表与查询骨架:昨日新增、累计积分分开算

2.1 先建一张积分流水表

假设表名沿用常见的IntellManuSchool_UserPoints,字段包含用户、积分、时间。建表语句如下,你可以直接复制到 SSMS 里跑:

CREATE TABLE IntellManuSchool_UserPoints ( Id INT IDENTITY(1,1) PRIMARY KEY, UserId INT NOT NULL, Points INT NOT NULL, -- 正数为获得,负数为消耗 AddTime DATETIME NOT NULL, Remark NVARCHAR(200) NULL );

插入几条测试数据,方便后面验证结果:

INSERT INTO IntellManuSchool_UserPoints (UserId, Points, AddTime, Remark) VALUES (1001, 50, CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-1, 120) + ' 09:12:00', 120), N'昨日签到'), (1002, 30, CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-1, 120) + ' 14:35:00', 120), N'昨日任务'), (1003, -10, CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-1, 120) + ' 20:01:00', 120), N'昨日兑换'), (1001, 20, CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 120) + ' 08:30:00', 120), N'今日签到'), (1004, 100, CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-2, 120) + ' 11:00:00', 120), N'前日奖励');

2.2 昨日新增积分:两种写法对比

第一种是字符串截断比较,也就是把时间转成yyyy-MM-dd再和昨天比:

SELECT SUM(Points) AS '昨日新增' FROM IntellManuSchool_UserPoints WHERE CONVERT(VARCHAR(10), AddTime, 120) = CONVERT(VARCHAR(10), GETDATE()-1, 120);

第二种是DATEDIFF写法:

SELECT SUM(Points) AS '昨日新增' FROM IntellManuSchool_UserPoints WHERE DATEDIFF(dd, AddTime, GETDATE()-1) = 0;

两种都能出结果,但有个坑要提醒:CONVERT(VARCHAR(10), ...)会让AddTime上的索引失效,数据量大时全表扫描。DATEDIFF写法同样对列做了函数运算,索引也用不上。如果表有几十万行以上,建议改成范围查询:

SELECT SUM(Points) AS '昨日新增' FROM IntellManuSchool_UserPoints WHERE AddTime >= CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-1, 120) + ' 00:00:00', 120) AND AddTime < CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 120) + ' 00:00:00', 120);

范围查询能走索引,边界也清晰:左闭右开,昨天零点到今日零点,不会把今天的数据算进来。

2.3 累计积分:全量聚合还是余额字段

累计积分有两种口径,先想清楚你要哪种。

口径一,历史所有流水求和,也就是积分池总量:

SELECT SUM(Points) AS '累计积分' FROM IntellManuSchool_UserPoints;

口径二,每个用户当前余额,通常业务表里会单独维护一个Balance字段,直接查更快:

SELECT UserId, SUM(Points) AS '当前余额' FROM IntellManuSchool_UserPoints GROUP BY UserId;

对账日报一般两个都要:一个看总量,一个看分布。把昨日新增和累计放一条 SQL 里也行,用子查询:

SELECT (SELECT SUM(Points) FROM IntellManuSchool_UserPoints WHERE AddTime >= CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-1, 120) + ' 00:00:00', 120) AND AddTime < CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 120) + ' 00:00:00', 120)) AS '昨日新增', (SELECT SUM(Points) FROM IntellManuSchool_UserPoints) AS '累计积分';

跑出来应该是一行两列,昨日新增 70(50+30-10),累计积分 190(70+20+100)。数字对不上就往下看排障部分。

3. TaoToken 前置:统一 Key 与 API 通道准备

写 SQL 这件事本身不需要联网,但如果你想让 AI 帮你改 SQL、解释执行计划、生成对账脚本,就需要一个稳定的模型通道。TaoToken 在这里的角色是统一 Key 和 API 通道:一个 Key 走多个模型,不用在 Cline、Cursor、脚本之间来回换配置。

官网入口在这里:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api ,注意 API 地址不带 UTM 参数,配置时别写错。

你需要准备的东西只有一样:一个 API Key。获取路径是控制台的 API Keys 页面,直达链接:

https://taotoken.net/console/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

拿到 Key 之后先别急着写进配置,建议在模型对话页面先试一句,确认通道通不通:

https://taotoken.net/model-chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

如果你主要用 Cline 做长期编码和 SQL 辅助,可以了解下 Coding Plan,适合高频调用场景:

https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,配置字段有疑问时对照文档最稳。

4. 在 Cline 的 settings.json 里完成配置

4.1 找到配置文件位置

Cline 是 VS Code 插件,配置一般写在用户设置里。打开 VS Code,按Ctrl+Shift+P,输入Preferences: Open User Settings (JSON),在打开的settings.json里加 Cline 相关字段。不同版本字段名可能略有差异,以接入文档为准。

4.2 写入统一 Key 配置

下面是一份可复制的配置骨架,把apiKey换成你自己的:

{ "cline.apiProvider": "openai", "cline.openAiApiKey": "sk-你的TaoTokenKey", "cline.openAiBaseUrl": "https://taotoken.net/api", "cline.openAiModelId": "claude-sonnet-4-20250514", "cline.enableStreaming": true }

几个字段说明一下。apiProvider选openai兼容模式,因为 TaoToken 的 API 通道兼容 OpenAI 格式。openAiBaseUrl填https://taotoken.net/api,结尾不要多加斜杠。openAiModelId按你实际要用的模型填,模型列表在文档里能查到。

如果你用的是 Anthropic 协议通道,配置字段会不一样,参考 ClaudeCodeAnthropic 相关文档:

https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=

4.3 保存后重载窗口

改完settings.json保存,按Ctrl+Shift+P执行Developer: Reload Window,让插件重新读取配置。重载后在 Cline 面板里发一句「你好」测试,能正常回复就说明通道通了。

5. 验证请求:让 AI 帮你跑通查询并核对结果

5.1 用一条验证查询确认口径

配置好之后,把下面这条验证查询丢给 Cline,让它解释每一段在做什么:

SELECT CONVERT(VARCHAR(10), GETDATE()-1, 120) AS '统计日期', (SELECT SUM(Points) FROM IntellManuSchool_UserPoints WHERE AddTime >= CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-1, 120) + ' 00:00:00', 120) AND AddTime < CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 120) + ' 00:00:00', 120)) AS '昨日新增', (SELECT SUM(Points) FROM IntellManuSchool_UserPoints) AS '累计积分';

按前面插入的测试数据,预期结果是:统计日期为昨天,昨日新增 70,累计积分 190。如果昨日新增跑出 90,说明把今天的 20 也算进去了,边界写错了;如果跑出 170,说明漏了昨天的 -10,符号处理有问题。

5.2 让 AI 生成对账脚本

在 Cline 里输入这样的提示词:

基于 IntellManuSchool_UserPoints 表,写一个存储过程, 输入日期参数 @StatDate,输出该日新增积分和截至该日的累计积分。 要求用范围查询走索引,边界左闭右开。

AI 会给你一份带参数的存储过程骨架,你检查逻辑后直接在 SSMS 里建。这样每天对账只需要传一个日期,不用改 SQL。

5.3 结果核对的小技巧

对账最怕口径不一致。建议在流水表里加一个Remark字段标记来源,日报里按来源分组,昨日新增就能拆成签到、任务、兑换几块,哪块异常一眼看出来:

SELECT Remark, SUM(Points) AS '分项新增' FROM IntellManuSchool_UserPoints WHERE AddTime >= CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE()-1, 120) + ' 00:00:00', 120) AND AddTime < CONVERT(DATETIME, CONVERT(VARCHAR(10), GETDATE(), 120) + ' 00:00:00', 120) GROUP BY Remark;

6. 本篇常见错排查

6.1 昨日新增算多了或算少了

最常见的原因是日期边界。GETDATE()-1得到的是「当前时间减一天」,不是「昨天零点」。如果你直接写WHERE AddTime = GETDATE()-1,几乎永远查不到数据,因为时间戳精确到毫秒。正确做法是先转成日期字符串再拼零点,或者用CAST(GETDATE() AS DATE)配合DATEADD。

另一个原因是DATEDIFF(dd, AddTime, GETDATE()-1) = 0这种写法,当AddTime是今天但GETDATE()-1是昨天时,DATEDIFF可能返回 1 而不是 0,边界会漂。范围查询最稳。

6.2 累计积分和余额对不上

累计积分用SUM(Points)全量求和,如果表里有软删除标记(比如IsDeleted),你没过滤,就会把已删除的流水也算进去。检查一下表结构,有删除标记就加WHERE IsDeleted = 0。

还有一种情况是积分有过期扣减,过期流水也记在表里,那累计积分天然会偏低,这是业务口径问题,不是 SQL 问题,需要和产品确认。

6.3 Cline 配置后不生效

先检查settings.json的 JSON 格式,多一个逗号都会导致整个文件解析失败。然后确认openAiBaseUrl是https://taotoken.net/api,不要写成带路径的完整接口地址。如果还是不生效,重载窗口,再不行就看 Cline 的输出面板,里面会打印请求错误码,401 一般是 Key 错了,404 一般是 BaseUrl 写错了。

6.4 查询慢、走全表扫描

在 SSMS 里开「包含实际执行计划」,看AddTime上有没有 Index Scan。如果建了索引还是扫描,多半是WHERE里对列用了函数。把CONVERT(VARCHAR(10), AddTime, 120) = ...改成范围查询,索引就能用上。数据量特别大时,考虑按AddTime做分区。

7. 把查询脚本和统一 Key 串起来

到这里,Sql server 查昨日新增和累计积分的骨架你已经有了:建表、范围查询、子查询合并、分项核对,每一步都能直接复制去跑。TaoToken 统一 Key 的价值在于,你写 SQL 遇到报错、想优化执行计划、要生成存储过程时,不用在多个工具和账号之间切换,一个 Key 在 Cline 里就能把模型通道跑通。

后续如果要把对账做成每日定时任务,可以把存储过程挂到 SQL Server Agent 作业里,输出结果写进日报表。模型通道这边,长期高频用建议走 Coding Plan,配置和 Key 管理都在控制台统一处理。接入细节以文档为准,遇到配置字段不确定时对照文档改,比猜字段名快得多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/26 9:13:09

金融服务平台搭建实战:核心模块、技术决策与踩坑经验

很多人对“financial-services”这类项目的理解&#xff0c;往往停留在“做一套api把支付接进来”的层面。真正把一个金融服务平台落地并稳定运行&#xff0c;你会发现账务、风控、合规、对账这些事&#xff0c;每一件都比想象中复杂。这篇文章我从一线实战角度&#xff0c;聊聊…

作者头像 李华
网站建设 2026/9/26 9:10:48

第1课:微服务架构全景详解 SpringCloud2025新版迭代剖析

文章目录一、开篇&#xff1a;为什么需要微服务架构1.1 从一次线上事故说起1.2 单体架构的核心痛点1.3 微服务架构的核心思想1.4 微服务架构的四个核心概念二、Spring Cloud 版本体系深度剖析2.1 版本命名规则的演变2.2 当前活跃版本线路2.3 关键兼容性规则三、Spring Cloud 20…

作者头像 李华
网站建设 2026/9/26 9:09:15

油猴脚本实战:为任意动漫网站注入弹幕播放功能

1. 从零拆解&#xff1a;动漫网站弹幕播放脚本到底在解决什么问题 1.1 一个真实的使用场景 我平时追番的习惯比较杂&#xff0c;有些番在A站看&#xff0c;有些在B站看&#xff0c;还有些老番只有一些小站才有资源。问题就来了&#xff1a;小站往往没有弹幕系统&#xff0c;或…

作者头像 李华
网站建设 2026/9/26 9:07:30

Ubuntu 22.04安装全指南:从虚拟机到双系统再到翻车自救

写Ubuntu安装教程的文章挺多的&#xff0c;但大多数都跳步&#xff0c;有些地方默认你已经懂BIOS、懂分区、懂启动盘&#xff0c;结果新手一卡就是半天。我帮人远程装过太多次系统&#xff0c;最深的感觉就是&#xff1a;安装本身不复杂&#xff0c;复杂的是你不知道每一步屏幕…

作者头像 李华
网站建设 2026/9/26 9:06:47

Magic iPerf实战:局域网测速与网络故障排查指南

很多人拿到新手机或者换了路由器&#xff0c;第一件事就是找个测速软件跑一下&#xff0c;看看网速有没有达标。但你有没有想过一个问题&#xff1a;Speedtest 这一类工具测的其实是你到运营商机房的带宽&#xff0c;它压根测不出你家里局域网的真实水平。我自己搞网络调试这些…

作者头像 李华