sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 指定された列が複数回指定されました

    QISProduct にエイリアスされた計算クエリには、QISEventLog と QISProcess の 2 つのテーブルの id 列が含まれています。したがって、これらの列の名前を別の名前に変更してください。更新されたクエリ

            SELECT g.artcode
                ,sum(g.aantal)
                ,i.class_01
                ,i.Isstockitem
            FROM gbkmut AS g
            INNER JOIN items AS i ON i.itemcode = g.artcode
            INNER JOIN (
                SELECT QISP.id
                    ,QISprocess.nml AS Processnml
                    ,QISeventlog.id AS EventLogId
                    ,QISeventlog.dtsample
                    ,QISproduct.nms
                    ,QISbatchlog.nm AS batchnm
                    ,QIStestlog.idvariable
                    ,QIStestlog.no
                    ,QISshortnote.ds
                    ,gewicht = CASE QIStestlog.IDvariable
                        WHEN '139'
                            THEN QIStestlog.no
                        END
                    ,aantal = CASE QIStestlog.IDvariable
                        WHEN '234'
                            THEN QIStestlog.no
                        END
                    ,siloleeg = CASE QIStestlog.idvariable
                        WHEN '23'
                            THEN CASE QIStestlog.no
                                    WHEN '10'
                                        THEN 'Ja'
                                    ELSE 'Nee'
                                    END
                        END
                    ,QISvariable.nml variablenml
                    ,gl.nm AS glnm
                    ,QISprocess.id AS ProcessId
                FROM QIC.Vobra_new2.dbo.production AS QISP
                INNER JOIN QIC.Vobra_new2.dbo.process AS QISprocess ON QISP.idprocess = QISProcess.id
                INNER JOIN QIC.Vobra_new2.dbo.product AS QISproduct ON QISP.idproduct = QISproduct.id
                INNER JOIN QIC.Vobra_new2.dbo.batchlog AS QISbatchlog ON QISP.idbatch = QISbatchlog.id
                INNER JOIN QIC.Vobra_new2.dbo.eventlog AS QISeventlog ON QISeventlog.idproduction = QISP.id
                    AND QISeventlog.idbatch = QISbatchlog.id
                INNER JOIN QIC.Vobra_new2.dbo.testlog AS QIStestlog ON QIStestlog.idevent = QISeventlog.id
                LEFT JOIN QIC.Vobra_new2.dbo.shortnote AS QISshortnote ON QISshortnote.id = QIStestlog.no
                    AND QIStestlog.idvariable = '144'
                INNER JOIN QIC.Vobra_new2.dbo.variable AS QISvariable ON QISvariable.id = QIStestlog.idvariable
                LEFT JOIN QIC.Vobra_new2.dbo.vvarxproc AS vvp ON vvp.idvariable = QISvariable.id
                    AND vvp.idprocess = QISP.idprocess
                LEFT JOIN QIC.Vobra_new2.dbo.attribute AS QISattribute ON QISattribute.id = vvp.idattribute
                LEFT JOIN QIC.Vobra_new2.dbo.grade AS QISgrade ON QISgrade.id = QISattribute.idgrade
                LEFT JOIN QIC.Vobra_new2.dbo.gradelevel AS gl ON gl.idgrade = QISattribute.idgrade
                    AND gl.nlevel = QIStestlog.no
                WHERE QISbatchlog.nm NOT LIKE 'V%'
                    AND QISP.dtstart > '2017-01-01'
                    AND QISP.dtstart < '2017-01-19'
                    AND QISP.idprocess IN (
                        '12'
                        ,'13'
                        ,'14'
                        ,'15'
                        ,'16'
                        ,'17'
                        ,'18'
                        ,'41'
                        )
                    AND QIStestlog.idvariable IN (
                        '234'
                        ,'139'
                        ,'128'
                        )
                ) QISproduct ON g.artcode = QISproduct.nms
            WHERE g.bkjrcode > '2015'
                AND g.reknr IN (
                    3000
                    ,3010
                    ,3020
                    )
                AND g.aantal > 0
                AND g.warehouse IN (
                    '1'
                    ,'9'
                    )
                AND g.datum >= '2017-01-01'
                AND g.oorsprong = 'R'
                AND g.kstplcode <> 'VPR'
            GROUP BY g.artcode
                ,i.Class_01
                ,i.IsStockItem
    


    1. すべてのタイプからXアイテムを選択

    2. データベースパフォーマンスモニタリングを使用してSQLServerを高速化する方法

    3. 他のフィールドの値に基づいてJSONB列に新しいアイテムを挿入します-postgres

    4. この制約をどのように定義できますか?