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 > ต้องการคำสั่ง sql ในการ SUM หาค่าแต่ละปะเภทคะ ช่วยด้วยคะ



 

ต้องการคำสั่ง sql ในการ SUM หาค่าแต่ละปะเภทคะ ช่วยด้วยคะ

 



Topic : 038250



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



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




ต้องการให้ขึ้น POPUP แจ้งเตือนว่าวัคซีนใกล้จะหมดแล้ว คือจำนวนวัคซีนน้อยกว่า 20 ให้ขึ้นเตือน
เลยต้องการเขียนคำสั่ง sql ให้ sum จำนวนแต่ละชนิดออกมาก่อน แล้วค่อยเช็คว่าน้อยกว่า 20 หรือเปล่า
เลยต้องการใช้คำสั่ง sql คะ

มีข้อมูลดังนี้
ตารางประเภทวัคซีนเก็บข้อมูลวัคซีน และตารางวัคซีนเก็บจำนวนวัคซีนไว้
ตัวอย่าง

ตารางประเภทวัคซีน(vaccine type)
VC0001 วัคซีนรวม
VC0002 วัคซีนป้องกันพิษสุนัขบ้า
VC0003 วัคซีนพยาธิหัวใจ

ตารางวัคซีน(vaccine)
VC0001 50
VC0001 20
VC0001 30
VC0002 10
VC0002 70
VC0003 20

ต้องการ sum จำนวนวัคซีนข้อมูลของวัคซีนแต่ละชนิดออกมาคะ ใช้คำสั่ง sql อะไรคะ

ตอนนี้เขียนแบบนี้คะ
Code (VB.NET)
select sum(vaccine_quantity)as vac_quantity ,vac_id , vac_name
from  vaccine_type  , vaccine  
where vac_id = vac_No 



แต่ error คะ รบกวนด้วนนะคะ
ปล. ข้อมูลประเภทวัคซีนสามารถเพิ่มได้อีกนะคะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-03 14:53:34 By : numsom View : 3608 Reply : 10
 

 

No. 1



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



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


DECLARE @vac_id_temp AS nvarchar(50)

DECLARE vac_id_cursor CURSOR FOR
SELECT vac_id FROM vaccine_type;

OPEN vac_id_cursor;
FETCH NEXT FROM vac_id_cursor INTO @vac_id_temp
WHILE @@FETCH_STATUS=0
BEGIN

SELECT SUM(vaccine_quantity)AS vac_quan, @vac_id_temp AS vac_id FROM vaccine WHERE @vac_id_temp = vac_no

FETCH NEXT FROM vac_id_cursor INTO @vac_id_temp

END;
CLOSE vac_id_cursor;
DEALLOCATE vac_id_cursor;
GO

ได้ datatable มา 3 table แล้วเอาไปแยกเอาเองครับว่าเป็นของ vac_id อะไร






Date : 2010-02-03 17:03:19 By : numenoy
 


 

No. 2



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



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


คือดูแล้วไม่รู้เรื่องอะคะ ไม่ทราบว่ามันคืออะไรบ้างอะคะ
Date : 2010-02-03 17:26:33 By : numsom
 

 

No. 3



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



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


คุณเอา SQL นี้ไปลอง run ใน SQL Studio ถ้า table ไม่ผิดนะครับ มันจะได้ data table ออกมา 3 table แยกตาม vac_id ของคุณครับ เช่น

VC0001 100 คือ VC0001 มีเหลือ 100 หลอด ทำนองนี้ ผม sum ให้คุณแล้ว

VC0002 80

VC0003 20

คุณเขียนโปรแกรมเอา dataset ไปรับออกมา ก็จะได้ ข้อมูลที่คุณต้องการแล้วละ
Date : 2010-02-04 10:07:44 By : numenoy
 


 

No. 4



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



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


ขอบคุณมากคะ คุณ numenoy
Date : 2010-02-04 10:21:18 By : numsom
 


 

No. 5



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



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


พี่ numenoy คือส้ม(ขอเเทนตัวเองเป็นชื่อเเล้วกันคะ ง่ายดี ) ส้มยังไม่เข้าใจค่ะ เพราะว่าที่คำสั่งพี่ numenoy ให้มา
เป็นคำสั่ง SQL ที่ใช้ในการวน Loop รึเปล่าค่ะ เพราะเห็นมี
Code
FETCH NEXT FROM vac_id_cursor INTO @vac_id_temp


เลยอยากถามว่าถ้าเอา เจ้าคำสั่งพวกนี้ไปใช้ใน Code VB ใส่ไว้ในตัวเเปรชนิด String เเล้วติดต่อ DB ธรรมดาเเบบปกติ
เราจะได้ Data Set ที่มี DataTable กี่ตารางอะค่ะ

รบกวนพี่ numenoy ช่วยอธิบายคำสั่งให้ได้รึเปล่าค่ะ ต้องการทำความเข้าใจอย่างมากๆคะ เป็นความรู้ใหม่เลย
ไม่เคยเห็นที่ไหนมาก่อนคะ ตอนเรียนไม่มีเเน่ๆ เเละเพราะกลัวเอาไปใช้เเล้วตอนสอบจะตอบไม่ได้ค่ะ

รบกวนพี่ numenoy หน่อยนะคะ
Date : 2010-02-04 10:26:56 By : numsom
 


 

No. 6



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



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


DECLARE @vac_id_temp AS nvarchar(50)
'ประกาศตัวแปล vac_id_temp มาก่อน วิธี ลองดูใน sql help

DECLARE vac_id_cursor CURSOR FOR SELECT vac_id FROM vaccine_type;
'สร้าง cursor vac_id_cursor จาก vac_id จาก table vaccine_type แปลได้ว่า สร้างตัวชี้ทุกๆ ค่า ของ vac_id เช่น vac_id VC0001,VC0002,VC0003 มันจะได้มา 3 ตัว

OPEN vac_id_cursor;
'เปิดใช้งาน cursor vac_id_cursor
FETCH NEXT FROM vac_id_cursor INTO @vac_id_temp
'เริ่มรับค่า vac_id_cursor เข้าตัวแปล @vac_id_temp
WHILE @@FETCH_STATUS=0
'เข้า loop while ว่า ว่าจนกว่า @@FLTCH_STATUS จะเท่ากับศูนย์ ใ้ห้ทำข้างล่างนี้
BEGIN
'เริ่มกันเลย

SELECT SUM(vaccine_quantity)AS vac_quan, @vac_id_temp AS vac_id FROM vaccine WHERE @vac_id_temp = vac_no
'เลือกรวมค่า vaccine_quantity เป็น field ใหม่ ชื่อ vac_quan, เอาค่า vac_id_temp มาเป็น field ด้วย WHERE @vac_id_temp = vac_no เฮ้อออ งงมั้ย
เช่น ถ้า VC0001 ก็ summary ค่า vaccine_quantity มาให้ด้ว


FETCH NEXT FROM vac_id_cursor INTO @vac_id_temp
'เปลี่ยนค่า vac_id_cursor เป็น ค่าต่อไป เช่น VC0002

END;
CLOSE vac_id_cursor;
DEALLOCATE vac_id_cursor;
GO

อ่านแล้วงงมั้ย พี่แปลตรงๆ เลยนะเนี้ย ก็มึนไปเหมือนกัน
น้องจะเอาไปสอบเลยหรือ พี่ว่ามันลึกไปมั้ง เขาไม่เอามาสอบหรอก select insert update delete เอาให้คล่องก็ปวดหัวแล้ว
Date : 2010-02-04 11:10:28 By : numenoy
 


 

No. 7



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



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


ขอบคุณมากๆเลยคะพี่ numenoy แต่ว่าส้มต้องการเอาคำสั่งนี้ไปหาจำนวนวัคซีนที่กำลังจะหมด stock นะคะ แล้วให้ขึ้นเตือนว่ามีวัคซีนที่กำลังจะหมด stock นะคะ เลยต้องการคำสั่ง sql ในการหาจำนวนรวมทั้งหมดของวัคซีนแต่ละชนิด

แต่ว่าวิธีของพี่ numenoy ใช้ได้นะคะ ถือว่าเป็นความรู้ใหม่เลยส้มเข้าใจด้วย แต่ยังไงก็ต้องขอลองเอาไปวางใช้ใน vb ก่อนนะคะ ได้ไม่ยังไงเดี๋ยวส้มจะมาตอบใหม่คะ
Date : 2010-02-04 11:47:19 By : numsom
 


 

No. 8



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



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


view sourceprint?1.select sum(vaccine_quantity)as vac_quantity ,vac_id , vac_name
2.from vaccine_type , vaccine
3.where vac_id = vac_No
group by vac_id , vac_name

คุณ ลืม group by ครับ
Date : 2010-02-04 11:54:40 By : superpheak
 


 

No. 9



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



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


นั่นนะสิ แต่ว่าขอบคุณทุกๆคนนะคะ ที่เข้ามาตอบและช่วยแนะนำ
Date : 2010-02-04 23:35:16 By : numsom
 


 

No. 10



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



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


อืมมม เขียนมาตั้งเยอะ ลืม group by จริงๆ ขอบคุณครับ
Date : 2010-02-05 08:49:08 By : numenoy
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ต้องการคำสั่ง sql ในการ SUM หาค่าแต่ละปะเภทคะ ช่วยด้วยคะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 02
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 อัตราราคา คลิกที่นี่