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

技术问询:查询1981年1-2月雇佣≥2名商船乘客的OOUR名称与城镇

修正后的SQL查询方案

首先先明确两个表的核心结构(根据你提供的表截图整理):

  • OOUR表:存储OOUR的基本信息,关键字段有soour(唯一标识)、naziv(名称)、grad(所属城镇)
  • RADNIK表:存储雇佣记录,关键字段有sradnik(关联OOUR的soour)、DATZAP(雇佣日期)、trg_putnik(商船乘客相关字段)

你的原始SQL存在几个语法和逻辑问题,我帮你修正并优化了查询语句,能准确筛选出1981年1-2月期间雇佣至少2名商船乘客的OOUR信息:

SELECT o.naziv, o.grad
FROM OOUR o
JOIN RADNIK r ON o.soour = r.sradnik
WHERE YEAR(r.DATZAP) = 1981 
  AND MONTH(r.DATZAP) IN (1, 2)
  AND r.trg_putnik IS NOT NULL -- 假设trg_putnik非空表示该记录是商船乘客
GROUP BY o.naziv, o.grad
HAVING COUNT(r.trg_putnik) >= 2;

关键修正点说明:

  • 用显式JOIN替代隐式连接,让表关联逻辑更清晰易读
  • 正确指定雇佣日期范围:限定年份为1981,月份为1或2,避免跨年份的1-2月数据被误选
  • 使用GROUP BY按OOUR的名称和城镇分组,再通过HAVING子句筛选分组后商船乘客数量≥2的记录(WHERE子句不能直接使用聚合函数,必须用HAVING配合分组)
  • 增加r.trg_putnik IS NOT NULL的条件(如果trg_putnik字段为空表示非商船乘客的话),确保只统计目标群体

如果trg_putnik是数值字段(比如单条记录对应乘客数量),可以把HAVING子句调整为SUM(r.trg_putnik) >= 2,具体取决于字段的实际含义。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:32:47