sql - 显示没有值的单位
问题描述
我正在尝试从数据库中的计算机获取所有这些信息,但某些单元没有保修信息并且未被选中。如何让没有保修信息的设备与其他设备一起显示?
SELECT Distinct A.[UNITID]
,A.[NAME]
,A.[DESCRIPTION]
,A.[UnitModel]
,Models.Model
,A.[FormFactor]
,A.[SerialNumber]
,A.[Manufacturer]
,A.[MACAddress]
,A.[IPAddress]
,I.[VALUE] as Memory
,Inv.[VALUE] as HDD_C
,INVType.VALUE As OSType
,C.[VALUE] as BiosDate
,WarrentyEnd.VALUE as WarrentyEnd
,WarrentyStart.VALUE as WarrentyStart
,WarrentyDescription.VALUE as WarrentyDescription
FROM [DB].[vCAPApc] A, [DB].[Models] Models, [DB].[UNIT] Unit, [DB].[INV] I, [DB].[INV] Inv, [DB].[INV] INVType, [DB].[INV] Formfactor, [DB].[CSI] C, [DB].[CSI] WarrentyEnd, [DB].[CSI] WarrentyStart, [DB].[CSI] WarrentyDescription
WHERE
Models.ID = A.UnitModel
AND Unit.UNITID = A.UNITID
AND Inv.UNITID = A.UNITID
AND I.UNITID = A.UNITID
AND I.NAME Like 'Total M%'
AND Inv.NAME = 'Drive C: Size'
AND C.UNITID = A.UNITID
AND C.NAME = 'Bios Date'
AND INVType.NAME = 'Type'
AND INVType.SECTION = 'Operating System'
AND INVType.VALUE != 'Member Server'
AND A.[FormFactor] != 'Virtual Machine'
AND A.NAME != 'VAGTEN-2'
AND WarrentyEnd.UNITID = A.UNITID
AND WarrentyEnd.SECTION = 'Garanti'
AND WarrentyEnd.NAME = 'Ophører'
AND WarrentyStart.UNITID = A.UNITID
AND WarrentyStart.SECTION = 'Garanti'
AND WarrentyStart.NAME = 'Start'
AND WarrentyDescription.UNITID = A.UNITID
AND WarrentyDescription.SECTION = 'Garanti'
AND WarrentyDescription.NAME = 'Beskrivelse'
解决方案
对于为空的字段,请尝试合并以使它们满足您的条件。像这样更改 where 查询,
AND COALESCE(WarrentyEnd.UNITID,A.UNITID) = A.UNITID
AND COALESCE(WarrentyEnd.SECTION,'Garanti') = 'Garanti'
AND COALESCE(WarrentyEnd.NAME,'Ophører') = 'Ophører'
所有保修字段都应遵循此类型的空检查以包含在结果集中。
推荐阅读
- c# - 仅在 XAML 中使用包时项目之间的 Nuget 包依赖关系
- python - 如何使用辅助函数实现卡片分类代码?
- apache-spark - Spark Web UI,即使我不持久化数据,也会显示非零内存存储数字
- ios13 - Swift iOS 13 - searchBar 中的 scopeBar 未显示在 TitleView 中
- react-native - React Native 构建 - 如何在发布中启用调试菜单(摇动)
- c# - Task.Run(async () => await MethodAsync()).Result 和 MethodAsync().Result 之间有什么区别吗?
- html - 带有 HTML 和 CSS 的旁注中的项目符号列表
- c++ - 如果代码中的任何位置都没有连接插槽,是否有理由发出 Qt 信号?
- java - gradle:tar 任务不创建 tar.gz
- java - Java:在 new File() 中传递字符串变量