ms sql 2008 r2 我创建了一个view视图,每次对源表格插入一条数据,此view视图就会出现两条一模一样的记录,原表只有一条。

解决方案 »

  1.   

    SELECT     dbo.群組_公司.客戶名稱, dbo.附屬設備採購單.SAP_NO, dbo.產品資料庫.產品說明, dbo.附屬設備採購單.入倉日期, dbo.附屬設備.s_no, 
                          dbo.附屬設備.公司編號, dbo.產品資料庫.產品編號, dbo.附屬設備採購單.產品序號, dbo.附屬設備.出貨時間, dbo.附屬設備.異動日期, 
                          dbo.附屬設備.匯入人員, dbo.附屬設備.匯入時序, dbo.附屬設備.訂單編號, dbo.附屬設備採購單.AvayaPO, dbo.附屬設備採購單.AvayaPOComName, 
                          dbo.附屬設備採購單.s_no AS s_no2, dbo.附屬設備採購單.數量, dbo.附屬設備採購單.狀態, dbo.附屬設備採購單.AvayaPOSAP, 
                          dbo.群組_公司.AvayaPOComName AS PLDSName, dbo.附屬設備採購單.備註, dbo.附屬設備.出貨日期
    FROM         dbo.產品資料庫 INNER JOIN
                          dbo.附屬設備採購單 ON dbo.產品資料庫.產品編號 = LTRIM(RTRIM(dbo.附屬設備採購單.產品編號)) LEFT OUTER JOIN
                          dbo.附屬設備 LEFT OUTER JOIN
                          dbo.群組_公司 ON dbo.附屬設備.公司編號 = dbo.群組_公司.公司編號 ON dbo.附屬設備採購單.產品序號 = dbo.附屬設備.產品序號
      

  2.   

    产生这种有基本上有两个原因
    一、JOIN 语句没有加 条件 例如:LEFT OUTER JOIN dbo.附屬設備 
    二、JOIN 语句增加的条件存在多个值
      TABLE1 里有 A ,B有一条记录 1,2 
      TABLE2 里有 A ,B有二条记录 1,3和1,4
    如果写成这样
    SELECT *
    FROM TABLE1 A
    LEFT JOIN TABLE2 B ON B.A=A.A就会产生 笛卡尔积 出现多相同的记录
      

  3.   

    left join 是有可能产生重复值的 换INNER JOIN 试试。
      

  4.   

    LEFT OUTER JOIN
      dbo.附屬設備 @@@  LEFT OUTER JOIN
      dbo.群組_公司 ON dbo.附屬設備.公司編號 @@@  的位置上没有ON条件
      

  5.   

    LEFT OUTER JOIN
      dbo.附屬設備 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    LEFT OUTER JOIN
      dbo.群組_公司 ON dbo.附屬設備.公司編號 = dbo.群組_公司.公司編號 
                     ON dbo.附屬設備採購單.產品序號 = dbo.附屬設備.產品序號XXXXXXXXXXXXXXXXXXXXXX
    部分应该加上链接条件!
      

  6.   

    LEFT OUTER JOIN
      dbo.附屬設備 LEFT OUTER JOIN
      dbo.群組_公司 ON dbo.附屬設備.公司編號 = dbo.群組_公司.公司編號 ON dbo.附屬設備採購單.產品序號 = dbo.附屬設備.產品序號
    -------
    后面怎么没有ON条件啊?