0
我试图做一个SQL查询,这将有助于我acheive以下结果:了多个子查询的SQL查询
----------------------------------------------------------------------------
| RowNum | email | point_1 | point_2 | total_point |
----------------------------------------------------------------------------
| 1 | [email protected] | 120 | 70 | 190 |
----------------------------------------------------------------------------
SQL查询语句1(以获得ROWNUM,电子邮件和_1的值) :
$sql = "
select *
from
(
select ROW_NUMBER() OVER (ORDER BY m.first_name) as **RowNum**,
ltrim(rtrim(m.email_addr)) AS **email**,
CAST(isnull(p.points_accumulated,'0') AS INT) AS **point_1**
FROM (select * from crm_member_list where coy_id='HSG' and mbr_id not in (select mbr_id from o2o_tmp_mbr_issues_exclude)) m
left join (select * from crm_member_points where coy_id='HSG') p
on p.mbr_id = m.mbr_id
where m.email_addr = '[email protected]'
and m.date BETWEEN '2016-08-01 00:00:00' AND '2016-08-31 23:59:00'
)sub where RowNum>? and RowNum<? order by RowNum";
SQL查询语句2(以获得point_2的值):
$sql = "
select CAST(isnull(p.points_accumulated,'0') AS INT) AS **point_2**
FROM (select * from crm_member_list where coy_id='HSG' and mbr_id not in (select mbr_id from o2o_tmp_mbr_issues_exclude)) m
left join (select * from crm_member_points where coy_id='HSG') p
on p.mbr_id = m.mbr_id
where m.email_addr = '[email protected]'
and m.date BETWEEN '2016-09-01 00:00:00' AND '2016-09-30 23:59:00'";
我试图将2秒结合上面显示得到结果,但我得到的错误
“直接执行SQL,没有游标”。
组合代码:
$sql = "
select *
from
(
(select ROW_NUMBER() OVER (ORDER BY m.first_name) as **RowNum**,
ltrim(rtrim(m.email_addr)) AS **email**,
CAST(isnull(p.points_accumulated,'0') AS INT) AS **point_1**
FROM (select * from crm_member_list where coy_id='HSG' and mbr_id not in (select mbr_id from o2o_tmp_mbr_issues_exclude)) m
left join (select * from crm_member_points where coy_id='HSG') p
on p.mbr_id = m.mbr_id
where m.email_addr = '[email protected]'
and m.date BETWEEN '2016-08-01 00:00:00' AND '2016-08-31 23:59:00'),
(select CAST(isnull(p.points_accumulated,'0') AS INT) AS **point_2**
FROM (select * from crm_member_list where coy_id='HSG' and mbr_id not in (select mbr_id from o2o_tmp_mbr_issues_exclude)) m
left join (select * from crm_member_points where coy_id='HSG') p
on p.mbr_id = m.mbr_id
where m.email_addr = '[email protected]'
and m.date BETWEEN '2016-09-01 00:00:00' AND '2016-09-30 23:59:00'
)
)sub where RowNum>? and RowNum<? order by RowNum";
我应该怎样去组合这两个查询语句来生成上面显示的结果呢?如何添加point_1和point_2的列以获取total_point列?
在此先感谢
这不是mysql,它不支持'row_number()'。请标记正确的DBMS。 – fancyPants