-2
select dr_drvname, count(sh_wkflag)
from driver join shift on dr_drvnum = sh_drvnum
where sh_wkflag like '%T%'
group by dr_drvnum;

“T”意味着真正的工作班次。如何从另一个表中使用计数和绘制名称?

驱动程序表包含所有名称。班次表包含 sh_wkflag,其值为 T 或 F,具体取决于班次是否已进行。我希望能够获得“T”的所有值并对其进行计数。显示由驱动程序表中的驱动程序编号分组的“T”编号,以及驱动程序表中的驱动程序名称。

只要我不显示驱动程序名称,查询就会运行,但我也需要显示名称。我得到的错误是, dr_drvname 不是按表达式分组。

4

1 回答 1

0

啊哈!错误说明了一切。添加dr_drvnameGROUP BY子句中。按 分组是多余的dr_drvnum,但没关系。

select dr_drvname, count(sh_wkflag)
from driver join shift on dr_drvnum = sh_drvnum
where sh_wkflag like '%T%'
group by dr_drvnum, dr_drvname;
于 2012-12-02T22:48:30.020 回答