【发布时间】:2019-03-11 19:19:02
【问题描述】:
我有以下代码用于在 SSRS 中生成报告。
create table #tempdata(computer_name varchar(max),[Machine Type] varchar(max),Service_tag varchar(max),
[Operating System] varchar(max),
Computer_Model varchar(max), [Technical YES/NO] varchar(10),Manufacturer varchar(max),[SSD or HDD or null] varchar(max),
HDD_Size int,AD_site varchar(max),AD_Zone varchar(max), firstpowerondate date,FBODY varchar(max),manufacturer_date date,capacity int,
BIOS_version varchar(max),biosreleasedate date, BIOSY int,snapshotdate date)
--select * from SCCM_PCrefreshdata
insert into #tempdata
SELECT DISTINCT
v_R_System.Netbios_Name0 AS Computer_Name,
case
when v_GS_COMPUTER_SYSTEM.Model0 like '%Virtual%' then 'Virtual Machine'
when v_GS_COMPUTER_SYSTEM.Model0 like '%VM%' then 'Virtual Machine'
else 'Physical Machine'
End as 'Machine Type',
Tag0 as Service_Tag,
CASE
When Operating_System_Name_and0 like '%6.1%' then 'Windows 7'
When Operating_System_Name_and0 like '%6.3%' then 'Windows 8.1'
When Operating_System_Name_and0 like '%10%' then 'Windows 10'
END as 'Operating System',
v_GS_COMPUTER_SYSTEM.Model0 AS Computer_Model,
case
when v_GS_COMPUTER_SYSTEM.Model0 like '%precision%' and v_GS_COMPUTER_SYSTEM.manufacturer0 like '%dell%' then 'YES'
else 'NO' END as 'Technical YES/NO',
v_GS_COMPUTER_SYSTEM.manufacturer0 AS Manufacturer,
CASE
when v_GS_DISK.PNPDeviceID0 like '%SSD%' then 'SSD'
when v_GS_DISK.Model0 like '%SanDisk%' then 'SSD'
when v_GS_DISK.Model0 like '%hynix%' then 'SSD'
when v_GS_DISK.Model0 like '%LITEON%' then 'SSD'
when v_GS_DISK.Model0 like '%KINGSTON%' then 'SSD'
when v_GS_DISK.Model0 like '%MICRON%' then 'SSD'
when v_GS_DISK.Model0 like '%NVMe%Device%' then 'SSD'
when v_GS_DISK.Model0 like '%Crucial%' then 'SSD'
when v_GS_DISK.Model0 like '%TOSHIBA KSG60ZM%' then 'SSD'
when v_GS_DISK.Model0 like '%TOSHIBA THNSNK%' then 'SSD'
when v_GS_DISK.PNPDeviceID0 is null then 'null'
else 'HDD' END as 'SSD or HDD or null',
HDISK.size0 AS HDD_Size,
[AD_Site],
[AD_Zone],
CHASSIS.FirstPowerOnDate0 as First_Power_On_Date,
CASE
When FirstPowerOnDate0 is null then '1900'
When FirstPowerOnDate0 like '%2011%' then '2011'
When FirstPowerOnDate0 like '%2012%' then '2012'
When FirstPowerOnDate0 like '%2013%' then '2013'
When FirstPowerOnDate0 like '%2014%' then '2014'
When FirstPowerOnDate0 like '%2015%' then '2015'
When FirstPowerOnDate0 like '%2016%' then '2016'
When FirstPowerOnDate0 like '%2017%' then '2017'
When FirstPowerOnDate0 like '%2018%' then '2018'
When FirstPowerOnDate0 like '%2019%' then '2019'
End as 'FPODY',
CHASSIS.ManufactureDate0 as Manufacturer_Date,
MEMORY.Capacity,
SMBIOSBIOSVersion0 As BIOS_VERSION,
ReleaseDate0 AS BIOS_RELEASE_DATE,
CASE
When ReleaseDate0 is null then '1900'
When ReleaseDate0 like '%2008%' then '2008'
When ReleaseDate0 like '%2009%' then '2009'
When ReleaseDate0 like '%2010%' then '2010'
When ReleaseDate0 like '%2011%' then '2011'
When ReleaseDate0 like '%2012%' then '2012'
When ReleaseDate0 like '%2013%' then '2013'
When ReleaseDate0 like '%2014%' then '2014'
When ReleaseDate0 like '%2015%' then '2015'
When ReleaseDate0 like '%2016%' then '2016'
When ReleaseDate0 like '%2017%' then '2017'
When ReleaseDate0 like '%2018%' then '2018'
When ReleaseDate0 like '%2019%' then '2019'
End as 'BIOSY',NULL
FROM [CM_CAS].[dbo].[v_R_System]
LEFT JOIN (
SELECT ResourceID, Model0, FirstPowerOnDate0, ManufactureDate0, Tag0 FROM [CM_CAS].[dbo].[v_GS_DELL_DCIM_Chassis0] WHERE [CM_CAS].[dbo].[v_GS_DELL_DCIM_Chassis0].CreationClassName0 = 'DCIM_Chassis'
) as CHASSIS ON [CM_CAS].[dbo].[v_R_System].ResourceID = CHASSIS.[ResourceID]
LEFT JOIN [CM_CAS].[dbo].[v_GS_PC_BIOS] ON [CM_CAS].[dbo].[v_GS_PC_BIOS].ResourceID = [CM_CAS].[dbo].[v_R_System].ResourceID
LEFT JOIN (
SELECT ResourceID, SUM(Capacity0) as Capacity From [CM_CAS].[dbo].[v_GS_PHYSICAL_MEMORY] GROUP BY ResourceID
) as MEMORY ON MEMORY.ResourceID = [CM_CAS].[dbo].[v_R_System].ResourceID
LEFT JOIN (
SELECT ResourceID, size0 FROM [CM_CAS].[dbo].[v_GS_DISK]
WHERE [v_GS_DISK].Name0 = '\\.\PHYSICALDRIVE0'
) as HDISK ON HDISK.ResourceID = [CM_CAS].[dbo].[v_R_System].ResourceID
LEFT JOIN (
SELECT ResourceID FROM [CM_CAS].[dbo].[v_GS_LOGICAL_DISK] WHERE [v_GS_LOGICAL_DISK].Caption0 = 'c:'
) as LDISK ON [CM_CAS].[dbo].[v_R_System].ResourceID = LDISK.ResourceID
JOIN v_GS_DISK ON v_R_System.ResourceID = v_GS_DISK.ResourceID
JOIN totalrpt.AD_Computer ON totalrpt.AD_Computer.AD_name = v_R_System.Netbios_Name0
left JOIN v_GS_COMPUTER_SYSTEM ON v_GS_COMPUTER_SYSTEM.ResourceID = v_R_System.ResourceID
WHERE Operating_System_Name_and0 NOT LIKE '%Server%'
and v_gs_disk.model0 not like '%usb%'
and v_gs_disk.model0 not like '%sdhc%'
--and MEMORY.Capacity<8192
--and BIOSY <2017
ORDER BY netbios_name0
create table #temp(computer_name varchar(max),[Machine Type] varchar(max),Service_tag varchar(max),
[Operating System] varchar(max),
Computer_Model varchar(max), [Technical YES/NO] varchar(10),Manufacturer varchar(max),[SSD or HDD or null] varchar(max),
HDD_Size int,AD_site varchar(max),AD_Zone varchar(max), firstpowerondate date,FBODY varchar(max),manufacturer_date date,capacity int,
BIOS_version varchar(max),biosreleasedate date, BIOSY int,snapshotdate date)
insert into #temp
select * from #tempdata
declare @date as date
set @date=replace(convert(NVARCHAR, getdate(), 111), ' ', '/')
update #temp set snapshotdate=@date
insert into SCCM_PCrefreshdata
select * from #temp
drop table #temp
drop table #tempdata
我将日期更新为
declare @date as date
set @date=replace(convert(NVARCHAR, getdate(), 111), ' ', '/')
update #temp set snapshotdate=@date
即使在以以下格式更新其提供快照日期之后 2019-03-11,从我得到的 SSRs 报告格式是
所以我需要更改一种格式来获取数据库中的数据,它存储为“-”而不是“/”
【问题讨论】:
-
友好建议:如果您的问题是您尝试解决的问题的最简单版本,而不是大量额外信息,您会更快地获得更好的答案。
-
我需要 yyyy-mm-dd 格式的日期,这就是它存储在数据库中的内容。在 SSR 中,我得到 2019/03/06 00:00:0000。即使在使用带有参数的转换后,它也不会改变
标签: sql-server tsql reporting-services