ถ้าต้องการสร้างคิวรี่ที่รวมเอาข้อมูลบางฟิลด์ของทั้ง 8 ตารางมาโชว์รวมเป็นตารางเดียวเนี่ยต้องทำยังไง
กระทู้เก่าบอร์ด อ.สุภาพ ไชยา

 241   1
URL.หัวข้อ / URL
ถ้าต้องการสร้างคิวรี่ที่รวมเอาข้อมูลบางฟิลด์ของทั้ง 8 ตารางมาโชว์รวมเป็นตารางเดียวเนี่ยต้องทำยังไง

สมมุติว่าเรามีตารางอยู่ 8 ตารางนะครับ ถ้าต้องการสร้างคิวรี่ที่รวมเอาข้อมูลบางฟิลด์ของทั้ง 8 ตารางมาโชว์รวมเป็นตารางเดียวเนี่ยต้องทำยังไง  คือเคยลองทำแล้วครับ แต่ว่าในส่วนของ sql =  
SELECT [tblDefect Data].[Defect Code], [tblDefect Data].[Customer Name], [tblDefect Data].[Part Ref], tblBoardInfo.[Board Name], tblBoardInfo.Chassis, tblModelInfo.[MODEL NAME ], tblBoardInfo.Surface, tblBoardInfo.[LH(0)/CL(1)], tblBoardInfo.[Insertion Pitch], tblBoardInfo.[AI(0)/HM(1)], tblBoardInfo.[Shape Code] 
FROM tblModelInfo INNER JOIN ((tblDefectCode INNER JOIN (tblBoardInfo INNER JOIN (tblCustomer INNER JOIN [tblDefect Data] ON (tblCustomer.[Customer Name] = [tblDefect Data].[Customer Name]) AND (tblCustomer.[Customer Name] = [tblDefect Data].[Customer Name])) ON tblBoardInfo.[Part Ref] = [tblDefect Data].[Part Ref]) ON tblDefectCode.[Defect Code] = [tblDefect Data].[Defect Code]) INNER JOIN Production_full ON [tblDefect Data].[JON Number] = Production_full.JON) ON tblModelInfo.[MODEL NAME ] = [tblDefect Data].ModelName; 
 
คือดูจากโค๊ดแล้วมันเหมือนกับต้องตรงทุกคอนดิชั่น ถึงจะโชว์ผลลัพธ์ใช่ไหมครับ แล้วถ้าผมต้องการให้ตรงแค่อย่างน้อยคอนดิชั่นเดียวก็ให้แสดงผลเลยอ่ะครับ ส่วน ฟิลด์อื่นที่ไม่มีข้อมูลก็ให้แสดงช่องว่างไปอ่ะครับ อย่างนี้จะมีทางทำได้หรือเปล่าอ่ะ 
 
ตัวอย่างนะครับ 
 
------------------------------------------------------------------------------------------------------------------ 
l   Part Ref   l    CustomerName    l    Chassis   l     AI(0)/HM(1)    l  Shape Code    l 
------------------------------------------------------------------------------------------------------------------ 
l  C10            l    PTG  company      l        PA-6     l               0              l            K                l 
l   C2200      l                                        l        PA-6     l                1             l                               l 
l   D11          l     STE Company      l                       l                0             l            M               l 
l   C222        l      AIS  Company      l                       l                0             l                               l 
l   D11          l     STE Company      l                       l                0             l            M               l 
l   D11          l     STE Company      l                       l                               l            M               l 
l   D11          l     STE Company      l                       l                0             l            M               l 
l   D11          l     STE Company      l                       l                0             l                               l 
l   D11          l     STE Company      l                       l                               l            M               l 
l   D11          l     STE Company      l                       l                0             l            M               l 
------------------------------------------------------------------------------------------------------------------ 
 
ให้มันเป็นประมาณข้างบนนี้จะเป็นไปได้ไหมครับ คือถ้าฟิลด์ไหนมีข้อมูลที่เกี่ยวข้องก็แสดงออกมา แต่ถ้าฟิลด์ไหนไม่มีข้อมูลก็ว่างๆไว้อย่างงี้อ่ะครับ  
กระทู้นี้เป็นกระทู้ต่อเนื่องจาก DynamicQuery นะครับ 
 
ยังไงก็รบกวนเพื่อนๆพี่ๆช่วยด้วยนะครับ ตอนนี้จนปัญญาจริงๆ 
ขอบคุณล่วงหน้าครับ

1 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R00302
ถ้าดูตามโค้ดแล้ว คุณต้องการเพียงตาราง 2 ตาราง คือ tblDefect Data และ tblBoardInfo แค่นั้น เลยไม่จำเป็นจะต้องดึงตารางอื่นขึ้นมาแสดงด้วย SELECT [tblDefect Data].[Defect Code], [tblDefect Data].[Customer Name], [tblDefect Data].[Part Ref], tblBoardInfo.[Board Name], tblBoardInfo.Chassis, tblBoardInfo.Surface, tblBoardInfo.[LH(0)/CL(1)], tblBoardInfo.[Insertion Pitch], tblBoardInfo.[AI(0)/HM(1)], tblBoardInfo.[Shape Code] FROM tblBoardInfo INNER JOIN [tblDefect Data] ON tblBoardInfo.[Part Ref] = [tblDefect Data].[Part Ref]; ถ้าต้องการจะให้แสดงข้อมูลด้วย อาจจะต้องใช้ Left Join หรือ Right Join เพื่อรวมข้อมูลของอีกตารางเข้าไปด้วย แม้ว่าจะไม่มีความเกี่ยวข้องก็ตาม ซึ่งแล้วแต่ความต้องการที่จะใช้ผลลัพธ์ว่าต้องการเอาไปทำอะไร การทำ Left Join จะทำโดยการเปิด query แล้ว คลิก 2 ทีที่เส้นความสัมพันธ์ แล้วเลือกเอาตัวเลือกที่ 2 หรือ 3 แล้วแต่ความต้องการ ลองดูครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.0408s