ストアドプロシージャとして保存されるSQLクエリを作成します。このクエリは、XMLスクリプトによって呼び出されます。それは特定の形式でなければならず、値の列は1つしかありません。SQLクエリ - 複数の異なる合計を1つの列に入れます。
3つの異なる合計の結果を1つの列に別々の行で表示する必要があります。私はこれがどのように可能であるのか研究しておらず、現在値は3つの異なる '値'の列に出力されています。
クエリの目的は、特定の名前を持つSQLサーバー上のデータベースのサイズを表示することです。
クエリは現在、SQL Serverにクエリを実行しており、その名前に "@name"を含むデータベースを対象としています。ログファイルやオフラインデータベースを含むデータベースの合計サイズが表示されます。合計サイズが表示されていましたが、データベースファイルとログファイルの合計サイズを別々の行に別々の列に表示したい場合もあります。ここで
は私のクエリです:
declare
@name NVARCHAR(20)
set
@name = 'H3'
select
@name as Channel,
sum((a.size*8)/1024) Value,
SUM(CASE WHEN type_desc like 'ROWS' THEN (a.size*8)/1024 ELSE 0 END) Value,
SUM(CASE WHEN type_desc like 'LOG' THEN (a.size*8)/1024 ELSE 0 END) Value,
'1' as IsInt,
'MB' as Unit
from
sys.databases b
left join sys.master_files a
on b.database_id = a.database_id
where
b.name like '%'[email protected]+'%'
出力が現在のようになります。私は、ディスプレイにそれをしたい
Channel Value Value Value IsInt Unit
--------- ------- ------- ------ ------ ------
H3 140091 134737 5354 1 MB
:
Channel Value IsInt Unit
--------- ------- ------ ------
H3 140091 1 MB
H3 134737 1 MB
H3 5354 1 MB
私は私のように、任意の助けをいただければ幸いです本当にこれに執着しています。 私は非常にSQLに新しいので、答えは明らかかもしれません。
これはたぶん、UNION ALLを使用して、2008年
結果セットには常に1つのレコードが含まれますか? –