私のベンダーは、既存のクエリで機能するのに非常に時間がかかっているSQLコードを送信しました。
データベーステーブルに複数の値をクエリしているWebページがあります。これは、SQLをクエリするASPページにあるコードです。
SELECT [Account],
[AccountName],
[ComputerName],
[EMail],
[Telephone],
[Status],
cast(cast([StartDate] as float) as datetime) as 'Start-Date',
cast(cast([LastBackupDate] as float) as datetime) as 'LastBackup-Date',
[TotalFileSize],
[TotalFileCount]
FROM ExpandedView WHERE loginid = @0
このクエリはうまく機能しますが、上記で指定した「アカウント」フィールドは、実際のアカウント番号の一部のみを返すようです。どうやら私のベンダーは計算を使用して最終的なアカウント番号を作成し、それを私に送信しました:
use <databasenamehere>
select left(
convert(nvarchar,E.Account)
,5)+'-'+convert(nvarchar,
( 50 +((E.Account)%10)
-((E.Account/10)%10)
+((E.Account/100)%10)
-((E.Account/1000)%10)
+((E.Account/10000)%10)
-((E.Account/100000)%10)
+((E.Account/1000000)%10)
-((E.Account/10000000)%10)
+((E.Account/100000000)%10))
%10 )
+right(convert(nvarchar,E.Account),4)
as 'Account', AccountName from ExpandView E
Inner Join Customer C
on E.Account=C.Account
このクエリは、アカウント番号の最初の5つの番号を選択し、ハイフンを追加してから、最後の4つの番号に数学的な手順を実行していることに気付きましたが、これを読み取る方法がわかりません。これらの2つのステートメントを「AND」句と一緒に追加するだけでいいですか?
「E.Account」が何を指しているのか、なぜクエリで「ExpandViewE」と「CustomerC」を使用しているのかを本当に理解したいと思います。また、それらが実際のテーブルとどのように関連しているかについても、ちょっと迷っています。
どんな援助もいただければ幸いです。または、必要に応じて、リンクを投稿してください。できる限り読み上げます。
ありがとう!