SQL 复杂语句的处理方式
对于有些复杂的sql,要写好长那种,建议分开处理,尽量不要使用in,很耗时,应该尽量使用临时表
select NovelID,Title_Cn into #temp2 from Novel where NovelID in (
25309,25310,...
)
然后一步步来处理:
select NovelID,Title,convert(decimal(18,2),convert(float,sum(money))/100) as money1 from
(
select n.NovelID as NovelID,n.Title_Cn as Title,IsNull(sum(MoneySum),0) as money from #temp2 n left join [dbo].[VIPReadLog_18] b on n.NovelID=b.NovelID and b.Platforms in (0,4,3,6) and b.CreateDate>'2018-01-01' group by n.NovelID,n.Title_Cn
union all
select n.NovelID as NovelID,n.Title_Cn as Title,IsNull(sum(MoneySum),0) as money from #temp2 n left join [dbo].[VIPReadLog] b on n.NovelID=b.NovelID and b.Platforms in (0,4,3,6) and b.CreateDate>'2018-01-01' group by n.NovelID,n.Title_Cn
) a group by a.NovelID,a.Title order by NovelID
浙公网安备 33010602011771号