2

次の短い単純なビューを書きました。

--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 エイリアスされています !columnAcolumnC

ビューを何度か削除/再作成しようとしました。私はそれが厄介だと主張できることを知っていますが、それは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。上記のように使用しています。

4

0 に答える 0