SQL数据记录集重复的问题
调试SQL数据,发现数据记录集重复问题,所以,计算出的数据结果倍数问题。通过调试SQL,发现是物料的分类产生重复;之所以产生重复,物料的分类标准不一样,与实际的业务有关。程序中一直用类别来区分类别,而这张次实际业务不需要与类别有关,所以,没有对应的过滤条件,所有的类别全部选出来了。然后,把下面的红色字段注释掉,结果正确。这个问题与之前的union all 或 distinct 有点类似。所以,谨慎而正确的使用,一定要认真的分析业务,只有正确的理解实际的业务需求,才能写出正确的SQL语句。甚至左连接,右连接或内连接,都是与业务有关的。
/*dialect*/
select nvl(sum(nvl(tcta.fcznum, 0)), 0) superadditionCount,
nvl(sum(nvl(tcta.fczmoney, 0)), 0) superadditionMoney,
nvl(sum(nvl(tcta.fczresetnum, 0)), 0) superadditionReenabledCount,
nvl(sum(nvl(tcta.fczresetmoney, 0)), 0) superadditionReenabledMoney,
nvl(sum(nvl(tcta.fczdiffmoney, 0)), 0) superadditionDifferenceCount
from
t_cus_thkentrys2 tcta
inner join t_cus_thk tct on tcta.fparentid = tct.fid
left join ( /*dialect*/
select distinct
tbc.fid id,
tbcg.fid bid,
tbcg.fnumber businessType,
tbcg.fname_l2 businessName,
tbcs.fnumber classificationStandardCoding,
&
相关文档:
最近在做一个数据统计,要求对一个表中的数据按照两个维度呈现,也就是传统的交叉表
比如,有一个问题表,有三个字段,(标题、问题类别、问题状态)
要求按照不同的类别,分别统计处各个状态的问题数量(如:产品问题中未处理的数量、服务问题中遗留问题数量等等)。
经过查找和尝试,终于生成了结果,现在分享给大家。 ......
......
DDL:数据库定义语言(create ,alter,modify)可自动提交。
DML:数据库操作语言(insert, update,alter)应设SET AUTOCOMMIT ON
DCL:数据库控制语言(grant,deny,revoke)
create table table_name (column_name type [not null] [constraint constraint_definition default XXXXXX] )
[primary key (column_name,col ......
use master
go
if exists(select * from dbo.sysobjects where id = object_id(N'[dbo].[P_KillConnections]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[P_KillConnections]
GO
create proc P_KillConnections
@dbname varchar(200)
as
declare @sql nvarchar(500)
declare @spid nvar ......