gpt4 book ai didi

mysql - 如何在SQL中使用case语句

转载 作者:行者123 更新时间:2023-11-29 23:22:39 27 4
gpt4 key购买 nike

我在 SQL 中遇到这种情况,我需要显示 dr_DRVNUM、DR_DRVNAME 以及多天同一类次工作的司机的工作天数。

我在 SQL 中有这段代码,到目前为止我也尝试了不同的代码,但仍然没有运气

select dr_drvname, dr_drvnum, sh_wkdate
case when sh_drvnum = dr_drvnum and sh_wkshift = 'DAY' then count(sh_wkdate)
end
from driver, shift

我有一个表格,我正在上传下面表格图片的一部分,

DR_DRVNUM      DR_DRVNAME           SH_WKDATE        SH_WKSHIFT 

0001 Cooper, Randolph B. 15-NOV-07 DAY
0001 Cooper, Randolph B. 15-NOV-07 DAY
0001 Cooper, Randolph B. 15-NOV-07 DAY
0001 Cooper, Randolph B. 15-NOV-07 EVE
0001 Cooper, Randolph B. 15-NOV-07 EVE
0001 Cooper, Randolph B. 15-NOV-07 EVE
0001 Cooper, Randolph B. 15-NOV-07 NIG
0001 Cooper, Randolph B. 15-NOV-07 NIG
0001 Cooper, Randolph B. 15-NOV-07 NIG
0001 Cooper, Randolph B. 16-NOV-07 DAY
0001 Cooper, Randolph B. 16-NOV-07 DAY
0001 Cooper, Randolph B. 16-NOV-07 DAY
0001 Cooper, Randolph B. 16-NOV-07 DAY
0001 Cooper, Randolph B. 16-NOV-07 DAY
0001 Cooper, Randolph B. 16-NOV-07 DAY
0001 Cooper, Randolph B. 16-NOV-07 DAY
0001 Cooper, Randolph B. 16-NOV-07 EVE
0001 Cooper, Randolph B. 16-NOV-07 EVE

最佳答案

理解你要找的东西有点困难。将 count 与其他字段一起使用时,您应该使用 group by 子句。听起来您应该将 countcase 一起使用,如下所示:

select 
dr_drvname,
dr_drvnum,
sh_wkdate,
count(case when sh_wkshift = 'DAY' then 1 end)
from driver d
left join shift s on s.sh_drvnum = d.dr_drvnum
group by
dr_drvname,
dr_drvnum,
sh_wkdate

顺便说一句 - 这使用外连接来连接司机和轮类表以返回所有司机,即使他们没有轮类。根据您想要的结果,您可能只需使用内部联接即可。

关于mysql - 如何在SQL中使用case语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27195939/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com