次の短い単純なビューを書きました。
--DROP VIEW ReportObjects.vStarts;
CREATE VIEW ReportObjects.vStarts AS
SELECT *
FROM ReportObjects.vLotHistory
WHERE
LotType = 'Some constant value'
AND CDOName = 'Some constant value'
AND SpecId = 'Some constant value'
このスクリプトを実行し、SSMS のビューで [デザイン] をクリックすると、次のようになります。
SELECT ContainerName, SpecName, ProductName, LotStatus, CDOName, ResourceName AS LotType, EmployeeName AS WorkflowName, LotType AS DieQty,
WorkflowName AS LotQty, DieQty AS TxnDate, LotQty AS TxnDateGMT, TxnDate AS ContainerId, TxnDateGMT AS HistoryMainlineId, ContainerId AS ProductId,
HistoryMainlineId AS SpecId, ProductId AS WorkflowId, SpecId AS WorkflowBaseId, WorkflowId AS WorkflowStepId, WorkflowBaseId, WorkflowStepId, ResourceId,
EmployeeId
FROM ReportObjects.vLotHistory
WHERE (LotType = 'Some constant value') AND (CDOName = 'Some constant value') AND (SpecId = 'Some constant value')
問題が見えますか?の名前でDieQty AS TxnDate, LotQty AS TxnDateGMT, TxnDate AS ContainerId
エイリアスされています !columnA
columnC
ビューを何度か削除/再作成しようとしました。私はそれが厄介だと主張できることを知っていますが、それはSELECT *
要点を超えています (そして、それは時々製品コードで必要です)。
上記のビューは、次のように定義された別のビューから選択しています。
CREATE VIEW ReportObjects.vLotHistory AS
SELECT
lot.ContainerName,
hist.SpecName,
hist.ProductName,
lot.Status LotStatus,
hist.CDOName,
hist.ResourceName,
hist.EmployeeName,
lot.csiLotType LotType,
WorkFlowBase.WorkflowName,
hist.Qty DieQty,
hist.Qty2 LotQty,
hist.TxnDate,
hist.TxnDateGMT,
lot.ContainerId,
hist.HistoryMainlineId,
hist.ProductId,
hist.SpecId,
Workflow.WorkflowId,
Workflow.WorkflowBaseId,
hist.WorkflowStepId,
hist.ResourceId,
hist.EmployeeId
FROM ODS.MES_Schema.Container lot
LEFT JOIN ODS.MES_Schema.HistoryMainline hist
ON lot.ContainerId = hist.ContainerId
LEFT JOIN ODS.MES_Schema.WorkflowStep WS
ON hist.WorkflowStepId = WS.WorkflowStepId
LEFT JOIN ODS.MES_Schema.Workflow
ON WS.WorkflowId = Workflow.WorkflowId
LEFT JOIN ODS.MES_Schema.WorkflowBase
ON WorkflowBase.WorkflowBaseId = Workflow.WorkflowBaseId
SSMS または SQL Server がクエリを食べてナンセンスを吐き出す理由を知っている人はいますか? ビューの作成に SSMS ツールを使用していないことに注意してくださいCREATE VIEW
。上記のように使用しています。