需要更正 SQL 查询

Posted

技术标签:

【中文标题】需要更正 SQL 查询【英文标题】:Need correction of SQL query 【发布时间】:2021-07-22 13:21:05 【问题描述】:

我想找到只记念的semcode

我的查询是

  SELECT stdcode, Degree_Code, TODATE, Gradediv, Degree_Name, semcode, mindate
  FROM CHKLIST
  WHERE stdcode LIKE '%02-11036%'
  GROUP BY STDCODE, Degree_Code, TODATE, Gradediv, Degree_Name, semcode, mindate;

像输出这样的预期结果应该像附上这张图片:

此处附上示例数据

https://docs.google.com/spreadsheets/d/1NrU1NzVucmMLuwLXIf_nwvUbi6vjvEDkZDovsu5panA/edit?usp=sharing

【问题讨论】:

【参考方案1】:

如果你有一些至少每个学期的开始日期的表格会更容易,但如果你没有'这就是我所拥有的

select t1.*, cl.semcode 
  from (SELECT STDCODE, Degree_Code, TODATE, Gradediv, Degree_Name, min(mindate) mindate
         FROM CHKLIST
        GROUP BY STDCODE, Degree_Code, TODATE, Gradediv, Degree_Name) t1
  join CHKLIST cl
    on cl.stdcode = t1.stdcode 
       and cl.degree_code = t1.degree_code 
       and t1.gradediv = cl.gradediv 
       and t1.degree_name = cl.degree_name
       and t1.mindate = cl.mindate

最复杂的方面是您的 semcode col 带有难以比较的文本值。

数据库无法判断字符串“BAD-SUMMER-02”是否大于“BAD-FALL-01”。所以我将 semcode 列执行到连接表中,然后再次将来自子查询的聚合值与同一个表连接。

【讨论】:

是的,它是视图,但是 sem_code 和 mindate 来自其他表(MINdate 是学期开始日期)

以上是关于需要更正 SQL 查询的主要内容,如果未能解决你的问题,请参考以下文章

如何更正我的 sql 查询,以免收到错误“关键字 UNION not expected”?

SQL 查询未返回预期结果

多行的 SQL db2 更新查询

为音乐数据库编写 SQL 查询 [关闭]

如何更正 LIKE 数据的 PHP 查询?

更正 XPath 查询以获取 div 内部文本