 |
|
VB.net ติดปัญหาเรื่อง Code Sql Select ข้อมูลออกมาจาก DB แล้วไม่เหมือนกันใน DB |
|
 |
|
|
 |
 |
|
S/W ทั้งหมดในStock

S/W ที่เบิกใช้

S/Wที่เหลือ คือจะดึง ตัว Qty-RecQty แต่ค่าที่ออกมามันไม่เหมือนกันให้query1กับ2อ่ะครับ

อันนี้เปนcode
SELECT IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, Sum(IT_TransContractor.ReceivedQty) AS Qty, Sum(IT_TransStaff.WithdrawalQty) AS RecQty
FROM IT_EquipModel INNER JOIN (IT_Description INNER JOIN (IT_TransContractor INNER JOIN IT_TransStaff ON (IT_TransContractor.ItemNo = IT_TransStaff.ItemNo) AND (IT_TransContractor.ModelID = IT_TransStaff.ModelID)) ON IT_Description.ItemNo = IT_TransStaff.ItemNo) ON (IT_EquipModel.ModelID = IT_TransContractor.ModelID) AND (IT_EquipModel.OrderedTimes = IT_TransContractor.OrderedTimes) AND (IT_EquipModel.ContractorID = IT_TransContractor.ContractorID) AND (IT_EquipModel.ItemNo = IT_TransContractor.ItemNo)
WHERE (((IT_TransContractor.ItemNo)='IT002'))
GROUP BY IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, IT_TransContractor.ItemNo, IT_Description.Item_Desc;

T^Tนั่งปวดหลายวันแหละครับหาไม่เจอสักที
Tag : .NET, Ms Access, MySQL, Win (Windows App), VS 2010 (.NET 4.x)
|
ประวัติการแก้ไข 2013-12-29 10:16:25 2013-12-29 10:17:03
|
 |
 |
 |
 |
Date :
2013-12-29 10:14:41 |
By :
kamasaigis2 |
View :
1037 |
Reply :
8 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
คือตัว qty(ของตารางที่1) กับ recqty(ของตารางที่2) พอselectรวมกัน(เเบบตารางที่3) ได้ค่าของ qty(ของตารางที่1) กับตัว recqty(ของตารางที่2) ไม่เท่ากับในตารางที่1และตารางที่2ตอนที่selectแยกเฉพาะQty หรือเฉพาะRecQtyอ่ะครับ
|
ประวัติการแก้ไข 2013-12-30 02:08:48
 |
 |
 |
 |
Date :
2013-12-29 19:13:10 |
By :
kamasaigis2 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองใช้พวก Left Join ยังครับ ผมดู Inner join ของคุณแล้วงงมากเลยไม่ค่อยเข้าใจเท่าไหร่ 
|
 |
 |
 |
 |
Date :
2013-12-30 02:52:53 |
By :
01000010 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองใช้แล้วครับ ผลออกมาเหมือนกันครับ sqlอันนี้accessมานjoinให้autoอ่ะครับ
อันนี้เปน left joinCode (SQL)
SELECT IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, Sum(IT_TransContractor.ReceivedQty) AS Qty, Sum(IT_TransStaff.WithdrawalQty) AS RecQty
FROM IT_Description LEFT JOIN (IT_EquipModel LEFT JOIN (IT_TransContractor LEFT JOIN IT_TransStaff ON (IT_TransContractor.ItemNo = IT_TransStaff.ItemNo) AND (IT_TransContractor.ModelID = IT_TransStaff.ModelID)) ON (IT_EquipModel.ModelID = IT_TransContractor.ModelID) AND (IT_EquipModel.OrderedTimes = IT_TransContractor.OrderedTimes) AND (IT_EquipModel.ContractorID = IT_TransContractor.ContractorID) AND (IT_EquipModel.ItemNo = IT_TransContractor.ItemNo)) ON IT_Description.ItemNo = IT_EquipModel.ItemNo
WHERE (((IT_TransContractor.ItemNo)='IT002'))
GROUP BY IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, IT_TransContractor.ItemNo, IT_Description.Item_Desc;

|
ประวัติการแก้ไข 2013-12-30 03:16:09 2013-12-30 03:16:32 2013-12-30 03:17:00 2013-12-30 03:19:01
 |
 |
 |
 |
Date :
2013-12-30 03:11:15 |
By :
kamasaigis2 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สามารถ Join กันแบบไม่ซ้อนวงเล็บได้ไหมครับ Join แบบคุณผมนึกผลลัพท์ไม่ออกเลย
แล้วมันไม่ Error หรอครับ Join ซ้อนวงเล็บ ผมลอง Join ซ้อนวงเล็บใน SQL Server มัน Error 
|
ประวัติการแก้ไข 2013-12-30 13:25:08
 |
 |
 |
 |
Date :
2013-12-30 13:24:44 |
By :
01000010 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ในaccess กับ ในvb2010 ผมไม่ error นะครับ ที่วงเล็บซ้อนกันน่าจะมาจาก table IT_EquipModel กับ table IT_TransContractor เชื่อมกันหลายอันอ่ะครับ ผมลองเอาออกแล้วอันนี้sql อ่ะครับ
Code (SQL)
SELECT IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, Sum(IT_TransContractor.ReceivedQty) AS Qty, Sum(IT_TransStaff.WithdrawalQty) AS RecQty
FROM (IT_Description INNER JOIN IT_EquipModel ON IT_Description.ItemNo = IT_EquipModel.ItemNo) INNER JOIN (IT_TransContractor INNER JOIN IT_TransStaff ON IT_TransContractor.ModelID = IT_TransStaff.ModelID) ON IT_EquipModel.ModelID = IT_TransContractor.ModelID
WHERE (((IT_TransContractor.ItemNo)='IT002'))
GROUP BY IT_TransContractor.ModelID, IT_EquipModel.Model_Desc, IT_TransContractor.ItemNo, IT_Description.Item_Desc;
ลองrun query ดูออกมาได้เหมือนเดิมอ่ะครับ

table

|
 |
 |
 |
 |
Date :
2013-12-30 14:43:53 |
By :
kamasaigis2 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ในที่สุดก็ได้แหละครับ ใช้subquery มาช่วย
Code (SQL)
SELECT IT_EquipModel.ItemNo, IT_EquipModel.ModelID, IT_EquipModel.Model_Desc, (SELECT Sum(Switch([IT_TransContractor.ReceivedQty] Is Null,0,[IT_TransContractor.ReceivedQty] Is Not Null,[IT_TransContractor.ReceivedQty])) AS Qty
FROM IT_TransContractor where ( IT_EquipModel.ModelID = IT_TransContractor.ModelID)) AS Qty,
(SELECT Sum(IT_TransStaff.WithdrawalQty) AS RecQty FROM IT_TransStaff
where ( IT_EquipModel.ModelID = IT_TransStaff.ModelID) ) AS RecQty , [Qty] - [RecQty] as AwQty
FROM IT_EquipModel
WHERE (((IT_EquipModel.ItemNo)='IT002'))
GROUP BY IT_EquipModel.ItemNo, IT_EquipModel.ModelID, IT_EquipModel.Model_Desc

|
 |
 |
 |
 |
Date :
2014-01-02 16:00:07 |
By :
kamasaigis2 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|