帮我看看这个sql语句哪里错了?

hongcha99 2009-12-26 10:58:32
select a.XMMC,B.CBMC,c.UseDate,c.ComebackDate,c.WorkDays,c.FollowWorkPlan,d.DRHY,d.DRCY,d.DRCS
from
HYGC_SHIP_DAILY as a,
HYGC_SHIP_DAILY_FZCBDT as b,
HYGC_SHIP_DAILY_OIL_WATER as d,
T_Plan as c where b.BH=a.BH and b.BH=d.BH and b.CBMC=C.ShipName and b.CBMC=d.CBMC
and CONVERT(VARCHAR(10),a.RQ,120) = CONVERT(VARCHAR(10),'2009-12-24',120)

下面是结果:应该在 SDFSD11111111 3.00 的位置应该是空,但是现在把别的行的数据给读出来了!!
黄海 吉野2 2009-12-18 00:00:00.000 2009-12-18 00:00:00.000 12 SDFSD11111111 3.00
...全文
80 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
手抓宝 2009-12-26
  • 打赏
  • 举报
回复
才10分....
hongcha99 2009-12-26
  • 打赏
  • 举报
回复
哎 sql 我太弱了

select a.XMMC, b.CBMC,c.UseDate,c.ComebackDate,c.WorkDays,c.FollowWorkPlan,d.DRHY,d.DRCY,d.DRCS
from HYGC_SHIP_DAILY_FZCBDT as b left join T_Plan as c
on b.CBMC=C.ShipName left join
HYGC_SHIP_DAILY as a on b.BH=a.BH left join HYGC_SHIP_DAILY_OIL_WATER as d on
b.CBMC=d.CBMC and B.BH=D.BH
and CONVERT(VARCHAR(10),a.RQ,120) = CONVERT(VARCHAR(10),@Time,120)
手抓宝 2009-12-26
  • 打赏
  • 举报
回复
这个直接外间关联的,需要用左联接

试着把and CONVERT(VARCHAR(10),a.RQ,120) = CONVERT(VARCHAR(10),'2009-12-24',120)
这句条件去掉,只留下表关联条件,看看是否产生了笛卡尔乘积
hongcha99 2009-12-26
  • 打赏
  • 举报
回复
select a.XMMC, b.CBMC,c.ComebackDate,c.WorkDays,c.FollowWorkPlan
from HYGC_SHIP_DAILY_FZCBDT as b,T_Plan as c,HYGC_SHIP_DAILY as a
where b.BH=a.BH and b.CBMC=C.ShipName
and CONVERT(VARCHAR(10),a.RQ,120) = CONVERT(VARCHAR(10),'2009-12-24',120)

我加上了b.CBMC=C.ShipName 没有满足的条件

黄海 吉野2 2009-12-18 00:00:00.000 12 SDFSD11111111

应该 12 和 SDFSD11111111我想让其显示为null不应该查不出来或者是其他的数据

明白吗?
bancxc 2009-12-26
  • 打赏
  • 举报
回复
说实话 看不懂
波导终结者 2009-12-26
  • 打赏
  • 举报
回复
给个测试数据

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧