这是我的SQL语句:
select
a.amount as suixi_money,
a.amodanaTime as suixi_tiem,
a.registerMobile as principal_tel_number,
b.type as activity_type,
c.name as query_nickname,
c.mobile as query_tel_number,
c.realName as query_name
from tb_activity_record a
left join tb_activity b on a.activityId = b.id
left join tb_member c on a.memberId = c.id
where 1=1
and b.uid = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
and (
c.name like '1%'
or c.realName like '1%'
or c.mobile like '1%'
)
select count(*) from (select distinct memberId from tb_activity_record ) ac
select SUM(amount) from tb_activity_record
万分感谢
SELECT
A .amount AS suixi_money,
A .amodanaTime AS suixi_tiem,
A .registerMobile AS principal_tel_number,
b. TYPE AS activity_type,
c. NAME AS query_nickname,
c.mobile AS query_tel_number,
c.realName AS query_name,
ac.count,
su.SUM
FROM
(select count(*) count from (select distinct memberId from tb_activity_record ) d) ac,
(select SUM(amount) SUM from tb_activity_record) su,
tb_activity_record A
LEFT JOIN tb_activity b ON A .activityId = b. ID
LEFT JOIN tb_member c ON A .memberId = c. ID
WHERE
1 = 1
AND b. UID = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
AND (
c. NAME LIKE '1%'
OR c.realName LIKE '1%'
OR c.mobile LIKE '1%'
)
你第一段sql查不出数据啊?
如果你第一段sql查询的也只有一条记录的话,直接三段sql拼接再一起就行了
SELECT
A .amount AS suixi_money,
A .amodanaTime AS suixi_tiem,
A .registerMobile AS principal_tel_number,
b. TYPE AS activity_type,
c. NAME AS query_nickname,
c.mobile AS query_tel_number,
c.realName AS query_name,
ac.count,
su.SUM
FROM
(select count(*) from (select distinct memberId from tb_activity_record )) ac,
(select SUM(amount) from tb_activity_record) su,
tb_activity_record A
LEFT JOIN tb_activity b ON A .activityId = b. ID
LEFT JOIN tb_member c ON A .memberId = c. ID
WHERE
1 = 1
AND b. UID = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
AND (
c. NAME LIKE '1%'
OR c.realName LIKE '1%'
OR c.mobile LIKE '1%'
)
用UNION连接sql
select
a.amount as suixi_money,
a.amodanaTime as suixi_tiem,
a.registerMobile as principal_tel_number,
b.type as activity_type,
c.name as query_nickname,
c.mobile as query_tel_number,
c.realName as query_name,
0 as count,
0 as sum,
from tb_activity_record a
left join tb_activity b on a.activityId = b.id
left join tb_member c on a.memberId = c.id
where 1=1
and b.uid = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
and (
c.name like '1%'
or c.realName like '1%'
or c.mobile like '1%'
)
union all
select 0,0,0,0,0,0,0,count(*),0 from (select distinct memberId from tb_activity_record ) ac
union all
select 0,0,0,0,0,0,0,0,SUM(amount) from tb_activity_record
with t1 (select
a.amount as suixi_money,
a.amodanaTime as suixi_tiem,
a.registerMobile as principal_tel_number,
b.type as activity_type,
c.name as query_nickname,
c.mobile as query_tel_number,
c.realName as query_name
from tb_activity_record a
left join tb_activity b on a.activityId = b.id
left join tb_member c on a.memberId = c.id
where 1=1
and b.uid = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
and (
c.name like '1%'
or c.realName like '1%'
or c.mobile like '1%'
)),
t2 (select count(*) from (select distinct memberId from tb_activity_record ) ac),
t3 (select SUM(amount) from tb_activity_record)
select * from t1,t2,t3 where 约束
用这个试试
SELECT
*
FROM
(SELECT count(*) countAll FROM (SELECT DISTINCT memberId FROMtb_activity_record)) ac,
(SELECT SUM(amount) sumAll FROM tb_activity_record) su,
(select
A.amount AS suixi_money,
A.amodanaTime AS suixi_tiem,
A.registerMobile AS principal_tel_number,
b.TYPE AS activity_type,
c. NAME AS query_nickname,
c.mobile AS query_tel_number,
c.realName AS query_name
FROM tb_activity_record A
LEFT JOIN tb_activity b ON A.activityId = b.ID
LEFT JOIN tb_member c ON A.memberId = c.ID
WHERE 1 = 1 AND b.UID = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
AND c. NAME LIKE '1%' OR c.realName LIKE '1%'OR c.mobile LIKE '1%') abc
where ac.countAll is not null and su.sumAll is not null and abd.suixi_money is not null;
把第二句和第三句 sql 直接放到 第一段 sql的 查询条件中: 比如:
SELECT (SELECT COUNT(*) FROM 表) as c,id FROM 表;
select
a.amount as suixi_money,
a.amodanaTime as suixi_tiem,
a.registerMobile as principal_tel_number,
b.type as activity_type,
c.name
as query_nickname,
c.mobile as query_tel_number,
c.realName as query_name,
sum(a.amount) as sumAmount,
(select count(*) from (select distinct memberId from tb_activity_record )) ac
from
tb_activity_record a
left join tb_activity b on a.activityId = b.id
left join tb_member c on a.memberId = c.id
where
b.uid = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
and (c.name like '1%' or c.realName like '1%'or c.mobile like '1%')
不报错了,我查了一下没数据,你看下怎么回事,是不是你的条件问题
SELECT
*
FROM
(SELECT DISTINCT memberId countAll FROM tb_activity_record) ac,
(SELECT SUM(amount) sumAll FROM tb_activity_record ) su,
(select
A.amount AS suixi_money,
A.amodanaTime AS suixi_tiem,
A.registerMobile AS principal_tel_number,
b.TYPE AS activity_type,
c. NAME AS query_nickname,
c.mobile AS query_tel_number,
c.realName AS query_name
FROM tb_activity_record A
LEFT JOIN tb_activity b ON A.activityId = b.ID
LEFT JOIN tb_member c ON A.memberId = c.ID
WHERE 1 = 1 AND b.UID = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
AND c. NAME LIKE '1%' OR c.realName LIKE '1%'OR c.mobile LIKE '1%') abc
where ac.countAll is not null and su.sumAll is not null and abc.suixi_money is not null;
select
a.amount as suixi_money,
a.amodanaTime as suixi_tiem,
a.registerMobile as principal_tel_number,
b.type as activity_type,
c.name as query_nickname,
c.mobile as query_tel_number,
c.realName as query_name,
sum(a.amount) as sumAmount,
(select count(*) from (select distinct memberId from tb_activity_record )ac) as count
from
tb_activity_record a
left join tb_activity b on a.activityId = b.id
left join tb_member c on a.memberId = c.id
where
b.uid = '8445e6a4-9341-455b-bfef-81e0b5ed7a1e'
and (c.name like '1%' or c.realName like '1%'or c.mobile like '1%')
tb_member 表的主键id是13 tb_activity_record 里面的memberId 都是3 肯定没有数据哦
你直接把需求发给我 我给你写sql