特定のデータベースで実行するかなり大きなクエリがあります。このクエリが行うことは、特定のテーブルから特定の列を選択し、それらを新しいテーブルにダンプすることです。新しいテーブルは、後でクエリで使用および変更されます。
私が直面している問題は、データベースはおそらく同じプログラムからのものであるにもかかわらず、あるデータベースには列 email1、email2、および email3 が含まれている可能性がありますが、次のデータベースには email1 しか含まれていない可能性があります。email1-3 は select ステートメントの一部として使用されるため、これらの列のいずれかが欠落している場合、その部分が失敗し、テーブルが作成されません。
私はまだこれに非常に慣れていないので、私の質問は単純またはばかげているかもしれませんが、このように列が欠落しているときに結果を保存する方法はありますか? クエリから欠落している列を簡単に削除して再度実行することもできますが、これを行うためのより正しい方法があるかどうか疑問に思っていますか?
例:
SELECT Customer.[Name],
Customer.AcctKey,
SUBSTRING(Customer.LastName,1,25) AS [Last Name],
SUBSTRING(Customer.FirstName,1,25) AS [First Name],
Customer.Add1 AS Address,
Customer.Add2 AS Address2,
Customer.City,
Customer.State,
Customer.Zip,
Location.Add1 AS [Ship Address],
Location.Add2 AS [Ship Address2],
Location.City AS [Ship City],
Location.State AS [Ship State],
Location.Zip AS [Ship Zip],
Customer.Phone1 AS Phone,
Customer.Phone2 AS [Alt Phone],
Customer.Phone3 AS [Cell Phone],
Customer.Phone4 AS Fax,
Customer.lblPhone1,
Customer.lblPhone2,
Customer.lblPhone3,
Customer.lblPhone4,
Customer.Terms,
Customer.[Key] AS [Account Number],
Location.Notes,
Location.TaxCode AS [Tax Item],
Location.Zone AS [Map Code],
Location.Contact,
Location.Email,
Location.Email6, --Fails because column(s) Email2-6
Location.Email5, --don't exist in this database
Location.Email4, --but they might in another
Location.Email3, --and I'd like to get the data
Location.Email2, --if they do
Location.Phone6,
Location.Phone5
INTO [01Parents]
FROM Customer
INNER JOIN Location ON Customer.[Key] = Location.[Key]