台灣最大程式設計社群網站
線上人數
722
 
會員總數:245969
討論主題:189549
歡迎您免費加入會員
討論區列表 >> MS SQL >> SQL結果筆數重複問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
SQL結果筆數重複問題
價值 : 60 QP  點閱數:917 回應數:5
樓主

HKT
門外漢
0 6
170 10
發送站內信



請教各位大大,以下SQL語法如何讓執行後的資料筆數不要重複顯示呢?如下示意圖資料筆數會有重複問題,感謝~




LotNo BinLotNo BinSPEC BinQty MO PO IDIn DateIn Station aoigrade aoiQty compare
AJF5800300 AJF5800300 CLA 4 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade A 66 *
AJF5800300 AJF58003AA TD1 66 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade A 66
AJF5800300 AJF58003BA TD2 88 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade A 66 *
AJF5800300 AJF5800300 CLA 4 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade C 4
AJF5800300 AJF58003AA TD1 66 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade C 4 *
AJF5800300 AJF58003BA TD2 88 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade C 4 *
AJF5800300 AJF5800300 CLA 4 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade B 88 *
AJF5800300 AJF58003AA TD1 66 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade B 88 *
AJF5800300 AJF58003BA TD2 88 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade B 88



搜尋相關Tags的文章: [ inner join ] ,
本篇文章發表於2015-11-04 22:25
1樓
回應

Hsu,Harry
檢舉此回應

會有A,B,C共3種Grade(倒數第3個column),只要整理一下結果,就看得出來,在A的Subquery中即已決定,要分grade來看。

LotNo BinLotNo BinSPEC BinQty MO PO IDIn DateIn Station aoigrade aoiQty compare
AJF5800300 AJF5800300 CLA 4 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade A 66 *
AJF5800300 AJF5800300 CLA 4 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade C 4
AJF5800300 AJF5800300 CLA 4 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade B 88 *


AJF5800300 AJF58003AA TD1 66 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade A 66
AJF5800300 AJF58003BA TD2 88 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade A 66 *
AJF5800300 AJF58003AA TD1 66 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade C 4 *
AJF5800300 AJF58003BA TD2 88 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade C 4 *
AJF5800300 AJF58003AA TD1 66 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade B 88 *
AJF5800300 AJF58003BA TD2 88 003000010692 SWAC20P4034RE 099044 2015-08-10 11:21:15.000 64050 Grade B 88

本篇文章回覆於2015-11-05 05:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

HKT
檢舉此回應
Hsu,Harry 大,那小弟該如何修正,避免資料筆數重複問題呢?
本篇文章回覆於2015-11-05 07:17
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

Hsu,Harry
檢舉此回應
"重複"與否,只有施主自己才知道。若USER要看各種Grade的資料,此即為所求。先確認要的是??
1. ABC三種Grade視為一種Grade ?
請確認USER是否要將3種Grade合併計算(及ABC三種Grade視為一種Grade)

2. 顯示問題(以Grade進行轉置)
  | GradeA_Qty | GradeB_Qty | GradeC_Qty |  

另外,對A段的Subquery,就資料面貴公司的LOT明明只有10碼,根本不需要LEFT(LotNO, 10)
就"AOI"判斷應為LCD產業,不知是否有rework後拆批的想法(AJF5800300 ==> AJF5800310, AJF5800320)
若取LEFT(LotNo, 8)則就合理,但在此並不需要吧。
本篇文章回覆於2015-11-05 08:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
不錯的參考

真的有點難
檢舉此回應
我建議先create temp table 把key值 insert進去 再把相關欄位update 這樣就不會重覆
本篇文章回覆於2015-11-05 09:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

HKT
檢舉此回應
小弟將第6行 inner join 改為left join, 第18行改為GROUP BY LEFT(LotNo,10) ,另外第32行 ON Q.lotno=W.LotNo變更成 ON Q.lotno=W.LotNo,Q.BinSPEC=W.Recipe3 後問題已解決,
感謝大大們給的建議與提點,小弟是需要再加強基礎觀念了
本篇文章回覆於2015-11-05 19:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.