【发布时间】:2017-09-29 01:41:15
【问题描述】:
我在这个问题上坚持了几个小时,我正在尝试 COUNT 在 A 组、B 组、C 组中有多少订阅者用于此特定查询:
SELECT rh.id_subscriber, rh.bill_month, rh.bill_year,
(
SELECT tbl_gen_info.gen_data_03
FROM tbl_subscriber
LEFT JOIN tbl_gen_info ON tbl_subscriber.bill_area_code = tbl_gen_info.gen_data_01
WHERE rh.id_subscriber = tbl_subscriber.id_subscriber
) AS group_area
FROM tbl_reading_head AS rh
WHERE rh.id_soa_head IS NULL
AND rh.read_status <> 'Beginning'
AND rh.rec_status = 'active'
ORDER BY rh.id_subscriber
子查询从tbl_gen_info获取Group区域gen_data_03
表格包含以下信息:
tbl_gen_info
--------------------------------------------
| gen_category | gen_data_01 | gen_data_03 |
--------------------------------------------
| Area Code | Camacho St. | Group A |
--------------------------------------------
tbl_subscriber
----------------------------------
| id_subscriber | bill_area_code |
----------------------------------
| 1 | Camacho St. |
----------------------------------
tbl_reading_head
----------------------------------------------------------------------
| id_subscriber | id_soa_head | read_status | bill_month | bill_year |
----------------------------------------------------------------------
| 1 | NULL | Metered | 10 | 2017 |
----------------------------------------------------------------------
请注意,每个 id_subscriber 都有两 (2) 行(一排用于电,一排用于水)。按 id_subscriber 分组后:
GROUP BY rh.id_subscriber
我知道了:
我尝试在子查询之前添加COUNT:
COUNT(SELECT tbl_gen_info.gen_data_03 ...) AS group_area
但这不起作用。
【问题讨论】:
-
我很难理解你的问题。请编辑您的问题并向我们展示所涉及的三个表格的示例数据以及您实际期望的输出。我很确定您可以摆脱选择列表中那个讨厌的子查询,但除非您向我们展示一些数据,否则我们无法确定。