You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET环境SQL查询结果空值被错误填充问题修正

错误原因
  • 第一段SQL错误点:
    1. 用逗号写法隐式交叉连接pdatatest1,生成了学生、日期、考勤的无序笛卡尔积
    2. ptable和record1关联时仅匹配了日期字段,没有绑定学生ID关联条件,导致同日期下所有学生都匹配到了Methushal的考勤值,出现数据复用错误
  • 第二段SQL错误点:
    1. JOIN ptable未写ON关联条件,触发语法错误
    2. 关联考勤的子查询仅匹配了学生ID,未加日期匹配条件,会触发子查询返回多行的运行时错误,无法正常执行
修正后可直接运行的SQL
SELECT
  ptable.iDate AS dates12,
  pdatatest1.Name1,
  ptable.INAM,
  record1.INAM1
INTO project1
FROM pdatatest1
-- 先交叉连接学生表和日期表,生成所有学生对应所有考勤日期的基础数据集
CROSS JOIN ptable
-- 左连接考勤表,关联条件必须同时匹配学生ID+考勤日期,避免数据错配
LEFT JOIN record1
  ON pdatatest1.ID1 = record1.ID
  AND ptable.iDate = record1.Indate
ORDER BY ptable.iDate, pdatatest1.ID1;

-- 查询生成的结果表
SELECT * FROM project1;
执行效果说明
  • 最终返回3名学生*6个考勤日共18条记录
  • 仅Methushal(ID=1)在2022年6月1日-5日的记录能匹配到考勤表数据,显示对应的P/A值
  • 其余无匹配考勤记录的行,INAM1字段均返回NULL,和预期结果完全一致

内容的提问来源于stack exchange,提问作者jhon mojes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:48:13