当前位置: 代码迷 >> Sql Server >> 每次更新一条记录到基础表,视图就会有两条记录,该如何处理
  详细解决方案

每次更新一条记录到基础表,视图就会有两条记录,该如何处理

热度:42   发布时间:2016-04-27 15:04:00.0
每次更新一条记录到基础表,视图就会有两条记录
请帮忙看看视图是否创建得不合理

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.附屬設備.產品序號

------解决方案--------------------
这个咋看啊,总之出现两条肯定是有一对多的关系了,自己测试下吧。
------解决方案--------------------
建议你自己把表间关系理理清楚,光看查询语句,很难说你的语句是否正确:

SELECT a.客戶名稱, b.SAP_NO, c.產品說明, b.入倉日期, d.s_no, d.公司編號, c.產品編號, b.產品序號, d.出貨時間, d.異動日期, d.匯入人員, d.匯入時序, d.訂單編號, b.AvayaPO, b.AvayaPOComName, b.s_no AS s_no2, b.數量, b.狀態, b.AvayaPOSAP, a.AvayaPOComName AS PLDSName, b.備註, d.出貨日期

FROM 產品資料庫 c INNER JOIN 附屬設備採購單 b 
ON c.產品編號 = LTRIM(RTRIM(b.產品編號)) 
LEFT OUTER JOIN 附屬設備 d 
LEFT OUTER JOIN 群組_公司 a 
ON d.公司編號 = a.公司編號 
ON b.產品序號 = d.產品序號
  相关解决方案