SQL server实战篇 (一)根据类别分离表中的内容

USE [Data Inspection]
GO
/* Object: StoredProcedure [dbo].[data_extraction] Script Date: 2018/8/4 15:04:35 */
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

–数据处理步骤
–将从数据库提取的数据导入到origin_data_temp
–将origin_data_temp中FTIR 数据复制到FTIR_original_temp
–将origin_data_temp中DOAS 数据复制到DOAS_original_temp,并转换数据单位/1000
–将origin_data_temp中重金属数据复制到metal_original_temp
–执行存储过程FTIR_DATA_PROCESSING

ALTER proc [dbo].[data_extraction]
@startime datetime,
@endtime datetime,
@Base_StationInfo_ID int, – 站房ID
@Base_InstrumentInfo_ID int – 设备ID
as
begin

Declare
@UpStartTime datetime,
@UpEndTime datetime

set @UpStartTime = DATEADD(hour,12,@startime)
set @UpEndTime = DATEADD(hour,12,@endtime)

--分离FTIR数据
if (select COUNT(*) from original_data_temp where belongDevices = 0) > 0
    begin
        select * into FTIR_original_data_temp from original_data_temp where belongDevices = 0 and reportTime > @UpStartTime and reportTime < @UpEndTime
    end

--分离DOAS数据
if  (select COUNT(*) from original_data_temp where belongDevices = 1) > 0 
    begin
        select * into DOAS_original_data_temp from original_data_temp WHERE belongDevices = 1 and monitorName in('二氧化硫','二氧化氮','氯气','臭氧') and reportTime between @UpStartTime and @UpEndTime
        if exists (select *from sysobjects where id = OBJECT_ID(N'[DOAS_original_data_temp]') and OBJECTPROPERTY(id,N'IsUserTable') = 1)
            begin
                UPDATE DOAS_original_data_temp SET repairValue = repairValue/1000
            end
    end

--分离重金属数据
--if exists (select * from original_data_temp where belongDevices = 5)
    --select * into metal_original_data_temp from original_data_temp where belongDevices = 5 and reportTime between @UpStartTime and @UpEndTime


--将数据插入总表中
--insert into original_data([id],[stationID],[stationName],[devicesID],[devicesName],[monitorID],[monitorName],[belongDevices],[reportTime],[originalData],[repairValue],[unitID],[unit],[siteID],[itemID],[weatherReportTime],[temperature],[tempExplain],[humidity],[humidityExplain],[windDirection],[windDirectionExplain],[windSpeed],[windSpeedExplain]) 
                  -- select [id],[stationID],[stationName],[devicesID],[devicesName],[monitorID],[monitorName],[belongDevices],[reportTime],[originalData],[repairValue],[unitID],[unit],[siteID],[itemID],[weatherReportTime],[temperature],[tempExplain],[humidity],[humidityExplain],[windDirection],[windDirectionExplain],[windSpeed],[windSpeedExplain]  from original_data_temp

--更新区域编号和删除临时表
--update original_data set area = @Base_StationInfo_ID where area is null

end

猜你喜欢

转载自blog.csdn.net/qq_39001049/article/details/81411198