2

SQLManagementStudioを使用してSCCMSQLレポートを作成しました。次に、資産管理オフィスがWebレポートで使用するために、発行元、表示名、およびバージョンのプロンプトを作成しました。

表示名とバージョンプロンプトはどちらもオプションです。

構文エラーなどは表示されませんが、[表示]ボタンをクリックしてWebレポートを作成しても、まったく結果が表示されません。

これが私の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.DisplayName0ASCで注文する

================================================== ================================

レポートを実行し、発行者プロンプトで%Autodesk%のようなものを入力してから、[表示]ボタンをクリックすると、何も表示されません。別のレポートに移動してオートデスク製品を検索することはできますが、これはできません。私はSQLに精通しているわけではないので、誰かが私を助けてくれるなら、それは素晴らしいことです。

ありがとう

4

2 に答える 2

0

%記号は、多くの場合、ワイルドカードを意味します。likeキーワードとともに使用されます。等号があります。言い換えると、

where DisplayName like '%fred%'

fred、freddie、frederickなどを返します。ただし、

where DisplayName = '%fred%'

%fred%のみを返します

于 2013-03-13T00:08:40.637 に答える
0

AHHHHダンについて話していたことがわかります。

私の最後の声明/問い合わせを無視して、私は今私のコードを機能させました。プロンプト@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 FROM dbo.v_R_System Join dbo.v_GS_ADD_REMOVE_PROGRAMS On dbo.v_R_System.ResourceID = dbo.v_GS_ADD_REMOVE_PROGRAMS.ADD.ResourceID Where dbo.v_GS_ADD_REMOVE_PROGRAMS.Publisher Version0 Like @VersionOrder by dbo.v_GS_ADD_REMOVE_PROGRAMS.DisplayName0 ASC

================================================== ================================

次に、Begin、If、Else、およびEndステートメントを使用するようにPromptSQLコードを変更する必要がありました。プロンプト@変数のSQLコードはすべて基本的に同一であるため、@Publisher変数のプロンプトSQLコードのみを選択します。

これが私のパブリッシャー(@Publisher)プロンプトのSQLコードです:

================================================== ================================

Begin
If(@__ filterwildcard ='')
Select Distinct Publisher0
From v_Add_Remove_Programs Order By Publisher0
Else
Select Distinct Publisher0 From v_Add_Remove_Programs
Where Publisher0 Like @__ filterwildcard
Order By Publisher0
End

================================================== ================================

以前にPrompt@variablesに使用したコードは次のようなもので、メインのSQLコードの「Like」定数では機能しませんでした。

================================================== ================================

Distinct Publisher0
From v_Add_Remove_Programs Order By Publisher0を選択します。ここで、Publisher0 Like @__ filterwildcard
Order By Publisher0

================================================== ================================

したがって、Begin、If、Else、およびEndステートメントを使用すると、このクエリプロセスでより多くのロジックが可能になり、レポートのメインSQLコードで「Like」定数を使用できるようになります。

于 2013-03-14T22:49:11.017 に答える