我使用SQL Management Studio创建了一个SCCM SQL报告。然后,我为我的资产管理Office创建了以下提示,以便在Web报表上使用:Publisher,显示名称和版本。
显示名称和版本提示都是可选的。
我没有收到语法错误或任何内容,但是当我点击“显示”按钮生成网络报告时,我完全没有收到任何结果。
这是我的SQL代码:
=============================================== ===================================
SELECT dbo.v_R_System.Netbios_Name0,dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0,dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0, dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0
FROM dbo.v_R_System INNER JOIN dbo.v_GS_ADD_REMOVE_PROGRAMS ON dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID
WHERE dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 = @DisplayName AND dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0 = @Version AND dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0 = @Publisher
按订单排序 dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 ASC
=============================================== ===================================
我运行我的报告,在Publisher提示符下,输入%Autodesk%之类的内容,然后单击“显示”按钮,绝对不会显示任何内容。我可以转到另一个报告并查找Autodesk产品,但不是这个。我不是一个精通SQL的人,所以如果有人能帮助我那将是伟大的。
由于
答案 0 :(得分:0)
%符号通常表示通配符。它们与like关键字一起使用。你有相同的迹象。换句话说,
where DisplayName like '%fred%'
将返回fred,freddie,frederick等。但是,
where DisplayName = '%fred%'
只会返回%fred%
答案 1 :(得分:0)
AHHHH我看到你在谈论丹。
无视我的最后陈述/询问所有人,我现在正在使用我的代码。我的Prompt @variables的SQL代码未正确配置以使用“Like”常量,所以我修改了我的主要SQL代码:
=============================================== =================================== 选择Distinct dbo.v_R_System.Netbios_Name0,dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0,dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0,dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0 来自dbo.v_R_System 在dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ResourceID上加入dbo.v_GS_ADD_REMOVE_PROGRAMS 其中dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher0喜欢@Publisher或者dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0喜欢@DisplayName或者dbo.v_GS_ADD_REMOVE_PROGRAMS.Version0喜欢@VersionOrder来自dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 ASC
=============================================== ===================================
然后我必须修改我的提示SQL代码以使用Begin,If,Else和End语句。我将只选择我的@Publisher变量提示SQL代码,因为我的所有Prompt @variables的SQL代码基本相同。
以下是我的发布者(@Publisher)提示的SQL代码:
=============================================== ===================================
开始
如果(@__ filterwildcard ='')
选择Distinct Publisher0
来自v_Add_Remove_Programs按发布者排序
否则
选择Distinct Publisher0
来自v_Add_Remove_Programs
Publisher0喜欢@__filterwildcard的地方
按发布者排序0
端
=============================================== ===================================
我之前用于Prompt @variables的代码就像这样,它在我的主SQL代码中不能与“Like”常量一起使用:
=============================================== ===================================
选择Distinct Publisher0
来自v_Add_Remove_Programs按Publisher0排序
Publisher0喜欢@__filterwildcard的地方
按Publisher0排序
=============================================== ===================================
因此,显然使用Begin,If,Else和End语句在此查询过程中允许更多逻辑,因此允许我在报告的主SQL代码中使用“Like”常量。