MYSQL-减去两列,得到结果

MYSQL-减去两列,得到结果,mysql,Mysql,我试图写一个查询,其中应该计算学生人数,并告诉我车辆中剩余的座位 已设法确定哪个学生与哪辆公共汽车有关,但却被卡在了寻找剩余座位的位置上 数据如下: vehnum route seats student id 23 2 45 2345 33 3 46 6789 以下是查询: SELECT deveh.vehicle_reg_no AS vehnum , veh.route_code AS route , d

我试图写一个查询,其中应该计算学生人数,并告诉我车辆中剩余的座位

已设法确定哪个学生与哪辆公共汽车有关,但却被卡在了寻找剩余座位的位置上

数据如下:

vehnum  route  seats student id
23         2    45      2345
33         3    46      6789
以下是查询:

SELECT deveh.vehicle_reg_no AS vehnum
     , veh.route_code AS route
     , deveh.seating_capacity AS vehseat
     , class.fk_stu_id 
  FROM tbl_stu_class AS class 
  JOIN tbl_stu_route AS route 
    ON route.fk_stu_cls_id = class.pk_stu_cls_id 
  JOIN list_routes AS veh 
    ON route.fk_route_id = veh.pk_route_id 
  JOIN list_vehicles AS deveh 
    ON deveh.pk_vehicle_id = veh.fk_vehicle_id 
 WHERE class.fk_year_id = 62 
   AND class.current_yr = 'Y'
添加了示例数据:

INSERT INTO `list_vehicles` (`pk_vehicle_id`, `vehicle_reg_no`, `vehicle_type`, `regd_owner_name`, `seating_capacity`, `brand_model`, `type_of_body`, `reg_address`, `fuel_type`, `chasis_no`, `reg_authority`, `engine_no`, `color`, `reg_date`, `reg_valid_date`, `month_yr_mfg`, `fk_user_id`, `timestamp`) VALUES
(46, 'J58987', 'Bus', 'M', 30, 'VOlvo', 'Steel', 'FBD', 'Petrol', '565', 'M1', '5689', 'blue', '2016-10-02', '2016-10-02', '2014-12-31', 1, '2018-07-11 18:01:06'),
(53, 'J1234', 'Bus', 'der', 45, 'Volvo', 'Metal', 'Indirapuram', 'Petrol', '123456', 'det', '2365', 'blue', '2010-12-12', '2020-12-12', '2009-12-11', 1, '2018-07-12 06:54:50'),
(54, 'J1234er', 'Van', 'der', 46, 'Volvo', 'Metal', 'Indirapuram', 'Petrol', '12345634', 'det', '236534', 'blue', '2020-02-03', '2020-02-03', '2008-11-11', 1, '2018-07-12 06:57:59');

INSERT INTO `tbl_stu_class` (`pk_stu_cls_id`, `fk_stu_id`, `fk_year_id`, `fk_class_id`, `fk_section_id`, `current_yr`, `fk_user_id`, `timestamp`) VALUES
(1, 56, 50, 22, 10, 'N', 1, '2018-06-08 06:57:34'),
(3, 123, 50, 24, 7, 'N', 1, '2018-06-12 07:54:46'),
(4, 126, 50, 24, 7, 'N', 56, '2018-06-12 07:54:46'),
(5, 123, 52, 25, 7, 'Y', 1, '2018-06-12 17:30:32'),
(6, 126, 52, 25, 7, 'Y', 1, '2018-06-12 17:30:32'),
(7, 132, 50, 22, 9, 'Y', 1, '2018-06-24 10:27:57'),
(8, 133, 51, 23, NULL, 'Y', 1, '2018-06-24 18:22:33'),
(10, 127, 51, 23, NULL, 'Y', 0, '2018-07-11 17:47:05'),
(11, 134, 62, 22, NULL, 'Y', 0, '2018-07-13 08:11:16'),
(12, 135, 62, 21, 7, 'Y', 1, '2018-07-13 11:12:08'),
(13, 136, 62, 21, 9, 'Y', 1, '2018-07-13 14:59:04');

你能添加样品记录吗
seats
是可用的座位数还是已占用的座位数?你可以做一个
计数(学生id)
来计算选择中的学生人数,然后你可以
分组
或者
vehnum
@user3783243这是
座位数
我想你可以做
计数
并使用
拥有
。如果你可以发布样本数据,我可以测试ideaI,我不知道你是否可以一起做计数和细分。也许是子选择请求?选择计数(类fk_stu)作为学生,将座位数作为车辆,将座位数作为车辆,将学生数作为剩余座位,将tbl_stu_类作为类内部连接tbl_stu_路线作为路线上的路线。fk_stu cls_id=class.pk_stu cls_id内部连接列表_路线作为路线上的车辆。fk_路线id=veh.pk_路线_路线_内部连接列表_车辆作为车辆deveh.pk_vehicle_id=veh.fk_vehicle_id,其中class.fk_year_id='62'和class.current_yer='Y'由deveh.vehicle注册号分组;