首页 > 技术文章 > sqlserver--QA

1184212881-Ark 2017-06-20 14:00 原文

1.仪表入库后无数据接收处理:
select * from tblfminfo where fmaddress='1724181' order by createtime desc
select * from tbldatalog where SUBSTRING(REPLACE(SUBSTRING(datalog,25,33),' 3',''),1,40)='64890648615' order by createtime desc
(1)查询数据发送端口汇总文件,查询端口是否正确
(2)如果仪表数据未收到在30上查询datalog,则未接收到 需要等待。历史记录在datalog_back中

 


2.青浦需要导出:朱家角供水站、赵巷供水站的2016年全年的时用水量数据,负用水量和空值置为0 :


(1)创建tblRptHour_temp,表结构与tblRptHour相同
CREATE TABLE tblRptHour_temp(
    [PID] [decimal](18, 0) IDENTITY(1,1) NOT NULL,
    [CreateTime] [datetime] NULL ,
    [RptID] [varchar](50) NULL,
    [PrecinctID] [varchar](20) NULL,
    [PrecinctName] [varchar](50) NULL,
    [FilialeID] [varchar](20) NULL,
    [FilialeName] [varchar](50) NULL,
    [UserID] [varchar](20) NULL,
    [UserName] [varchar](50) NULL,
    [FMType] [varchar](10) NULL,
    [FMAddress] [varchar](20) NULL,
    [RptDate] [varchar](20) NULL,
    [RptHour] [varchar](10) NULL,
    [Flux] [float] NULL,
    [ItsFlux] [float] NULL,
    [AccountsID] [varchar](30) NULL DEFAULT (''),
    [Pressure] [float] NULL DEFAULT (0),
    [TotalFlux] [float] NULL DEFAULT (0),
    [PlusTotalFlux] [float] NULL
)
(2)然后倒入条件下数据到tblRptHour_temp
  insert into tblRptHour_temp(
        CreateTime
        ,RptID
        ,PrecinctID
        ,PrecinctName
        ,FilialeID
        ,FilialeName
        ,UserID
        ,UserName
        ,FMType
        ,FMAddress
        ,RptDate
        ,RptHour
        ,Flux
        ,ItsFlux
        ,AccountsID
        ,Pressure
        ,TotalFlux
        ,PlusTotalFlux
    )
    select 
        CreateTime
        ,RptID
        ,PrecinctID
        ,PrecinctName
        ,FilialeID
        ,FilialeName
        ,UserID
        ,UserName
        ,FMType
        ,FMAddress
        ,RptDate
        ,RptHour
        ,Flux
        ,ItsFlux
        ,AccountsID
        ,Pressure
        ,TotalFlux
        ,PlusTotalFlux
    from tblrpthour
    where filialeid in ('006','005') and (rptdate >= '2016-01-01' and rptdate <= '2016-12-31')
(3)将负值和空值更新为0
   update
tblRptHour_temp set flux=0 where flux < 0 or flux is null
(4)查询需要的数据
  select
distinct RptDate+' '+RptHour as rptTime,Flux from tblRptHour_temp   where username='上海市民族和宗教委员会'   order by rptTime
(5)有问题的两个username,处理办法:去重,任取其中一条记录即可
  1.同一个时间 但是又不同flux值---------> 上海吉盛伟邦绿地国际家具村市场经营管理有限公司   2.存在为0和有值得情况----------------> 上海市民族和宗教委员会

最后数据:

rar

 

 

 

 

续补:(原因:没有数据的结果他们还需要)

SELECT distinct username FROM tblfminfo WHERE Filialeid IN ('005','006') and username not in 
(
'上海信谊万象药业股份有限公司',
'青浦区朱家角镇万隆村村民委员会',
'上海强祥机械设备有限公司',
'珠江创投消防用水',
'解放军73166部队',
'上海新冠美家具有限公司',
'上海大千美食林实业有限公司',
'奥特莱斯品牌直销广场',
'珠江创投生活用水',
'永恩实业(上海)有限公司980001900',
'基胜工业上海有限公司',
'优速物流有限公司',
'朱家角沈巷建新总表',
'纳峰新能源科技有限公司',
'上海宋庆龄学校',
'东方绿舟9920000400',
'广东康景物业服务有限公司',
'上海杏灵科技药业股份有限公司',
'斯伦贝谢油田设备(上海)有限公司700913003',
'上海吉盛伟邦绿地国际家具村市场经营管理有限公司',
'东方绿舟9920000600',
'上海奥特莱斯品牌直销广场',
'上海阿姆斯壮建筑制品有限公司',
'上海市民族和宗教委员会',
'上海朱街阁房地产开发有限公司(鸿玺郡)',
'优思吉德实业(上海)有限公司',
'上海唯霖勃环保科技股份有限公司',
'上海市青少年校外活动营地-东方绿舟9920000300',
'上海熊猫机械集团有限公司',
'上海洛田家庭用品有限公司',
'东方绿舟9920000100',
'上海金萌实业有限公司',
'上海元祖梦果子股份有限公司'
)

 

 

推荐阅读