Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > สอบถามเกี่ยวกับการ Join ตาราง DataBase คับ คือ ผมอยาก Join ตาราง ทั้ง 3 ตาราง ไม่รู้ทำไง



 

สอบถามเกี่ยวกับการ Join ตาราง DataBase คับ คือ ผมอยาก Join ตาราง ทั้ง 3 ตาราง ไม่รู้ทำไง

 



Topic : 030743



โพสกระทู้ ( 241 )
บทความ ( 0 )



สถานะออฟไลน์




คือ ผมอยาก Join ตาราง ทั้ง 3 ตาราง ไม่รู้ทำไง คับ
คือ ผม Join ได้ 2 ตาราง แล้ว จะเอาอีกตารางไม่รู้ทำไง คับ
Code (VB.NET)
sqluername3 = "SELECT name_drug, mode, sum(quantity) As total_quantity FROM drug INNER JOIN mode ON drug.id_mode = mode.id_mode GROUP BY name_drug, mode HAVING(sum(quantity) <= 2) order by total_quantity "


โดยผมอยาก join เพิ่ม ตาราง drug_sale คับ โดยให้มีการใช้ sum(quantity_sale) --> (ของตาราง drug_sale)
โดยพอรวมกันโดย name_drugของdrug จะเท่ากับ name_drugของsale_drug
แล้วถ้าค่า sum(quantity_sale) > sum(quantity) แล้วให้แสดงออกทาง GridView คับ

ไม่รู้ทำไง คับ แค่ตรง Join ก็ติดแล้ว ช่วยแนะนำที คับบบ ขอบคุณคับบบบ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-08-25 09:51:36 By : hero_big View : 2846 Reply : 14
 

 

No. 1



โพสกระทู้ ( 30 )
บทความ ( 0 )



สถานะออฟไลน์


ขอ Database ได้มั๊ยละครับพร้อมกับตัวอย่างข้อมูลนะ






Date : 2009-08-25 12:58:01 By : naimai
 


 

No. 2



โพสกระทู้ ( 371 )
บทความ ( 0 )



สถานะออฟไลน์


Code (SQL)
SELECT A.name_drug,A.total_sale,B.total_quantity
FROM 
(
SELECT name_drug, mode, sum(quantity) As total_quantity 
FROM drug 
  INNER JOIN mode 
    ON drug.id_mode = mode.id_mode 
GROUP BY name_drug, mode 
HAVING(sum(quantity) <= 2)
) A 
INNER JOIN 
(
   SELECT name_drug,sum(quantity_sale) as total_sale
   FROM drug_sale
   GROUP BY name_drug
) B 
ON A.name_drug = B.name_drug
WHERE B.total_sale > A.total_quantity

Date : 2009-08-25 13:45:53 By : jezusmitsui
 

 

No. 3

Guest


คือ DataBase มี(โดยประมาณ)

drug - id_drug , name_drug , quantity , id_mode , lot
1 aaa 2 1 1
2 aaa 1 1 2
3 bbb 1 2 1
4 ccc 3 1 1

drug_sale - id_sale , id_drug , name_drug , quantity_sale
1 1 aaa 2
2 3 bbb 4
3 1 aaa 2

mode - id_mode , mode
1 P
2 S

คือ อยากให้แสดงใน GridView ประมาณว่าถ้า จำนวนโดยรวมของquantity น้อยกว่าจำนวนโดยรวมของ quantity_sale แล้วให้แสดงลงใน GridView คับ อย่างจากตาราง DataBase จะได้ดังรูปคับ
name_drug quantity mode
aaa 3 P
bbb 1 S

ประมาณนี้ คับ โดย Code จะดู ว่า ค่า Sum(ผลรวม)ของ quantity <= Sum(ผลรวม)ของquantity_sale หรือ ไม่ ถ้ามีให้แสดงคับ
ช่วยแนะนำทีคับบ ขอบคุณ๕ับบบบ
Date : 2009-08-25 15:30:53 By : hero_big
 


 

No. 4

Guest


Code (SQL)
select a.name_drug,sum(quantity) as qty,mode

 from drug a,drug_sale b,mode c

where a.id_drug = b.id_drug and a.id_mode = c.id_mode

group by a.name,mode

 having sum(b.quantity_sale)  > sum(a. quantity)

Date : 2009-08-25 19:14:04 By : superpheak
 


 

No. 5

Guest


คือ ตามที่คุณsuperpheak บอก ผมลองใช้ดู ค่า Sum ที่ได้ จะเกิน ตามตาราง คับ
เช่น
ในตาราง (ประมาณ)
drug - id_drug , name_drug , quantity , id_mode , lot
_________1_______aaa_________2________1_____ 1
_________2_______aaa_________1________1______2

สมมุติ ค่า Sum(quantity)ของ aaa < Sum(quantity_sale)

โดยเมื่อรัน Code แล้ว จะเป็น (โดยประมาณ)
name_drug , sum(quantity)
aaa_____________6(ที่จริงน่าจะเป็น 3)

แล้วลองดึงค่า Sum(quantity_sale) ก็จะแสดงออกมาเกินค่าในตารางด้วยคับ
ไม่รู้มันเกี่ยวกับ lot ของสินค้ารึเปล่า คับ มันเหมือนวนลูป คับ ไม่รู้ทำไง คับ ช่วยอีกหน่อยคับ
น่าจะใกล้ได้ แล้ว คับ
ขอบคุณมากๆๆ คับ
อีดนิดๆๆๆ ช่วยที คับ
Date : 2009-08-25 22:14:30 By : hero_big
 


 

No. 6



โพสกระทู้ ( 162 )
บทความ ( 0 )



สถานะออฟไลน์


ถ้า DataBase ของ คุณ hero_big เป็นดังนี้ นะครับ

drug - id_drug , name_drug , quantity , id_mode , lot 1 aaa 2 1 1 1 aaa 1 1 2 3 bbb 1 2 1 4 ccc 3 1 1


drug_sale - id_sale , id_drug , name_drug , quantity_sale 1 1 aaa 2 2 3 bbb 4 3 1 aaa 2


mode - id_mode , mode 1 P 2 S


สมมุติถ้าเราเขียน query แบบนี้นะครับ

Code (SQL)
SELECT a.name_drug, quantity,quantity_sale, mode
FROM drug AS a, drug_sale AS b, mode AS c
WHERE a.id_drug=b.id_drug And a.id_mode=c.id_mode


ค่าที่ไดจะประมาณนี้ครับ

name_drug quantity quantity_sale mode aaa 2 2 p aaa 2 2 p aaa 1 2 p aaa 1 2 p bbb 1 4 s


ซึ่งการ summary output ของตัวนี้จะเท่ากับ query ข้างบนครับ
ปัญหาเกิดจากการ join table ที่ 2 table มี record ที่เหมือนกันมากกว่า 1
ยกตัวอย่าง ปัญหาของคุณ hero_big
sum(qty) ใน table drug = 3 แต่เมื่อ นำ ไป join กับ table drug_sale ซึ่งมี 2 record จึงได้เป็น 6 ครับ
หากเพิ่ม aaa ใน drug_sale เป็น 3 คุณ hero_big ก็จะได้ output เป็น 9 ครับ
สรุปคือถ้า table เป็นอย่างนี้ join กันตรงๆ ไม่ได้ครับ อาจต้องเขียนสอง query หรือ sub query ครับ

ถ้าใครมีวิธี join กันตรงๆ ได้ ขอความชี้แนะด้วยครับ
Date : 2009-08-27 11:20:03 By : superpheak
 


 

No. 7



โพสกระทู้ ( 162 )
บทความ ( 0 )



สถานะออฟไลน์


query ครับ

Code (SQL)
select a.name_drug,sum(quantity) as qty,mode from drug as a,mode as b
where a.id_mode = b.id_mode
and a.id_drug = (select distinct  id_drug from drug_sale where id_drug = a.id_drug group by id_drug having  sum(quantity_sale) >=  sum(a.quantity) )
Group By a.name_drug,mode

Date : 2009-08-27 11:35:42 By : superpheak
 


 

No. 8



โพสกระทู้ ( 241 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณคับบบบบบ
Date : 2009-08-28 12:42:43 By : hero_big
 


 

No. 9

Guest


Code (VB.NET)
cmd.CommandText = "SELECT info_com(comID,IP_Address,Computer_Name,User_Login,location)" & _
                              ",[เมนบอร์ด].[รหัส] as [รหัสเมนบอร์ด],[เมนบอร์ด].[รหัสอุปกรณ์_Serial] as [รหัสอุปกรณ์_Serialเมนบอร์ด],[เมนบอร์ด].Socket as [Socketเมนบอร์ด],[เมนบอร์ด].[ยี่ห้อ/รุ่น] as [ยี่ห้อ/รุ่นเมนบอร์ด] " & _
                              ",cpu.[รหัส] as [รหัสซีพียู],cpu.[รหัสอุปกรณ์_Serial] as [รหัสอุปกรณ์_Serialซีพียู],cpu.[Socket] as [Socketซีพียู],cpu.[ยี่ห้อ/รุ่น] as [ยี่ห้อ/รุ่นซีพียู] " & _
                              ",ram.[รหัส] as [รหัสแรม],ram.[รหัสอุปกรณ์_Serial] as [รหัสอุปกรณ์_Serialแรม],ram.[บัส],ram.[ยี่ห้อ/รุ่น] as [ยี่ห้อ/รุ่นแรม] " & _
                              ",hdd.[รหัส] as [รหัสhdd],hdd.[รหัสอุปกรณ์_Serial] as [รหัสอุปกรณ์_Serialhdd],hdd.[ความจุ_GB],hdd.[ยี่ห้อ/รุ่น] as [ยี่ห้อ/รุ่นhdd] " & _
                              ",vga.[รหัส] as [รหัสvga],vga.[รหัสอุปกรณ์_Serial] as [รหัสอุปกรณ์_Serialvga],vga.[ความจำ],vga.[ยี่ห้อ/รุ่น] as [ยี่ห้อ/รุ่นvga] " & _
                              ",[power].[รหัส] as [รหัสpower],[power].[รหัสอุปกรณ์_Serial] as [รหัสอุปกรณ์_Serialpower],[power].[wat],[power].[ยี่ห้อ/รุ่น] as [ยี่ห้อ/รุ่นpower] " & _
                              " FROM info_com JOIN [เมนบอร์ด] on info_com.comID = [เมนบอร์ด].inforID" & _
                              ",JOIN cpu  on info_com.comID = cpu.inforID " & _
                              ",JOIN ram on info_com.comID = ram.inforID " & _
                              ",JOIN hdd on info_com.comID = hdd.inforID " & _
                              ",JOIN vga on info_com.comID = vga.inforID " & _
                              ",JOIN [power] on info_com.comID = [power].inforID" & _
                              " where info_com.comID = '" & id & "'" & _
                              " GROUP BY comID"



..............> มันขึ้นว่า "ข้อผิดพลาดทางไวยากรณ์ในส่วนคำสั่ง FROM" ใครพอจะรู้ช่วยบอกวิธีแก้ทีน่ะครับ<...........................
Date : 2013-05-20 10:05:42 By : parn
 


 

No. 10



โพสกระทู้ ( 821 )
บทความ ( 0 )



สถานะออฟไลน์


ผมว่าผิดตรง JOIN น่ะ

Code (SQL)
" FROM info_com JOIN [เมนบอร์ด] on info_com.comID = [เมนบอร์ด].inforID" & _
",JOIN cpu on info_com.comID = cpu.inforID " & _
",JOIN ram on info_com.comID = ram.inforID " & _
",JOIN hdd on info_com.comID = hdd.inforID " & _
",JOIN vga on info_com.comID = vga.inforID " & _
",JOIN [power] on info_com.comID = [power].inforID" & _


น่าจะเป็นประมาณ

Code (SQL)
" FROM info_com JOIN [เมนบอร์ด] on info_com.comID = [เมนบอร์ด].inforID" & _
" INNER JOIN cpu on info_com.comID = cpu.inforID " & _
" INNER JOIN ram on info_com.comID = ram.inforID " & _
" INNER JOIN hdd on info_com.comID = hdd.inforID " & _
" INNER JOIN vga on info_com.comID = vga.inforID " & _
" INNER JOIN [power] on info_com.comID = [power].inforID" & _

Date : 2013-05-20 11:27:56 By : fonfire
 


 

No. 11

Guest


ลองแล้วมันเป็นแบบนี่อ่ะครับ
Date : 2013-05-21 16:42:54 By : parn
 


 

No. 12

Guest


ขอโทดทีครับ up ผิดรูป
Date : 2013-05-21 16:54:51 By : parn
 


 

No. 13



โพสกระทู้ ( 257 )
บทความ ( 0 )



สถานะออฟไลน์


ใช้ DBMS ตัวไหนครับ Access หรือเปล่าครับ ??
Date : 2013-05-21 17:32:42 By : CPU4Core
 


 

No. 14

Guest


ใช่แล้วครับ DBMS ของผมคือ Access 2012 ครับ
(คือมันมีผลจากการไม่ใช้ sql ยังไง ครับ)
Date : 2013-05-22 09:04:41 By : parn
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเกี่ยวกับการ Join ตาราง DataBase คับ คือ ผมอยาก Join ตาราง ทั้ง 3 ตาราง ไม่รู้ทำไง
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 01
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่