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 ค่ะ [VB2008, SQL2008] รบกวนด้วยนะคะ1.ต้องการ select เพื่อแสดงข้อมูลการบริการและราคา



 

สอบถามเรื่องคำสั่ง SQL ค่ะ [VB2008, SQL2008] รบกวนด้วยนะคะ1.ต้องการ select เพื่อแสดงข้อมูลการบริการและราคา

 



Topic : 038578



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



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




รบกวนด้วยนะคะ
1.ต้องการ select เพื่อแสดงข้อมูลการบริการและราคา ที่ตรงกับข้อมูลสัตว์เลี้ยงที่มารับบริการ โดยมีเงื่อนไขคือ

1.1.บริการที่แสดงต้องเป็นบริการตาม ประเภท สัตว์เลี้ยงตัวนั้นเท่านั้น ในที่นี่ จะเป็น สุนัขหรือแมว นะคะ
1.2.บริการที่แสดงต้องเป็นบริการตาม เพศ ของสัตว์เลี้ยงตัวนั้นเท่านั้น
1.3.บริการที่แสดงต้องเป็นบริการตาม น้ำหนัก ของสัตว์เลี้ยงตัวนั้นเท่านั้น
ซึ่ง rate ราคาจะขึ้นอยู่กับน้ำหนักและกวางเก็บค่าน้ำหนัก Wmin กับ Wmax เป็น Float นะคะ
Wmin คือน้ำหนักขั้นต่ำ
Wmax คือน้ำหนักไม่เกิน

ในส่วนของข้อ 1-2 กวางทำได้แล้วค่ะ

แต่เมื่อเพิ่มเงื่อนไขข้อที่ 3 ไป ก็ไม่มีข้อมูลใด ๆ แสดงขึ้นเลย (ไม่มี error ใด ๆ แจ้งเลยค่ะ)

จากที่ลองศึกษาและทำตาม https://www.thaicreate.com/tutorial/sql-between.html ก็ยังทำไม่ได้

รูปแบบคำสั่ง SQL ตอนนี้ที่ใช้ BETWEEN คือ

Code (VB.NET)
Dim st As String = "select ServID,ServName,STypeCode,ServPrice from Service,service_price where ForType like '%" & lb_TypePet.Text & "%' and ForSex like '%" & lb_Sex.Text & "%' and ServCode = ServID and '" & CDbl(lb_Weight.Text) & "' BETWEEN 'Wmin' AND 'Wmax'"


และลองแบบไม่ convert lb_weight.text แล้วก็ไม่ได้ค่ะ

2.ต้องการแสดงข้อมูลบริการทั้งหมดที่มีราคาน้อยที่สุดเพียง record เดียวต่อ 1 ID

รูปค่ะ

pb

จะเห็นได้ว่า มันโชว์ทุกราคาที่มีเลยค่ะ คำสั่งส่วนนี้ค่ะ

Code (VB.NET)
        st = "select ServID,ServName,ForType,ForSex,STypeCode,SysCode,ServPrice from Service,Service_Price where ServID = ServCode order by ServID"



รบกวนด้วยนะคะ ทุกท่าน ขอบคุณมากๆ ค่ะ

หากข้อมูลไม่เพียงพอ รบกวนแจ้งด้วยนะคะ กวางจะได้รีบจัดการให้เรียบร้อย ค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-08 23:39:55 By : Kwang196 View : 2624 Reply : 11
 

 

No. 1



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



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


น้องกวางต้อง เอา table มาให้พี่ดูว่า table Service , Service_Price เก็บ fields อะไรบ้าง
ไม่อย่างนั้นพี่ก็ select Query ให้ไม่ถูกจ้า

ดูจาก "where ServID = ServCode" มันก็พอจะเดาได้ ว่ามันจะ select ออกมาทุก rows อยู่แล้วเนี้ย เงื่อนไข where ของน้องไม่พอจ๊ะ






Date : 2010-02-09 08:32:23 By : numenoy
 


 

No. 2



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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


รู้ว่าไม่ทันการแล้ว แต่อยากแนะนำว่า

ในการ query ข้อมูล ถ้าไม่จำเป็นจริงๆ ไม่ควรใช้ like ควรออกแบบฐานข้อมูลให้สามารถให้ key id ในการ query ข้อมูลจะดีกว่า

การใช้ text มา query
Date : 2010-02-09 09:17:50 By : tungman
 

 

No. 3



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



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


อยากทราบ ServCode ของ Table Service_Price นะ
ว่ามีการกำหนดยังไง ยกตัวอย่างเช่น SV0009 นะ เพราะเท่าที่ดูคำสั่ง

select ServID,ServName,ForType,ForSex,STypeCode,SysCode,ServPrice from Service,Service_Price where ServID = ServCode order by ServID

นี้ แล้วมันโชว์มาหมดเป็นเพราะว่า
มีการซ้ำกันของข้อมูลนะ

ServCode เป็น Uni หรือป่าว
Date : 2010-02-09 09:45:01 By : taobsd
 


 

No. 4



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



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


พี่ numenoy ค่ะ เดี๋ยวกวางจะ capture database ให้นะคะ

พี่ tungman ค่ะ คือกวางใช้มาเปรียบเทียบประเภทสัตว์เลี้ยงกับเพศอ่ะคะ ถ้าไม่ใช้ like รบกวนแนะกวางด้วยนะคะ

คุณ TAOBSD ค่ะ ตัว ServCode .ในตาราง Service_Price ไม่เป็น Uni ค่ะ เพราะว่า ในการบริการหนึ่งบริการมีหลายราคาอะคะ

รบกวนด้วยนะคะ
Date : 2010-02-09 10:58:43 By : Kwang196
 


 

No. 5

Guest


ปัญหาข้อ 2ใช้ Group by ServID สิครับ

Code (VB.NET)
st = "SELECT ServID,ServName,ForType,ForSex,STypeCode,SysCode,MIN(ServPrice) from Service,Service_Price WHERE ServID = ServCode GROUP BY ServID"

Date : 2010-02-09 11:01:52 By : Jabacco
 


 

No. 6

Guest


ไม่ทราบว่าได้หรือป่าวครับ ตอบช้าไปนิดเดียวไม่งั้นคุณกวางได้เอาไปลองดูแล้ว ส่วน Codeตัวแรกผมอยากทราบว่า Wmax กับ Wmin ของคุณกวางเอามาจากไหนเหรอครับ ถ้าเป็นของ
ตารางอื่นผมว่าไป SELECT มาก่อนแล้วยัดเข้าตัดแปร 2 ตัวของ VB แล้วนำมา SELECT ตาม Code ของคุณกวางดูนะครับ อยากช่วยแต่ผมไม่เขียน VB อ่ะครับ
Date : 2010-02-09 11:07:30 By : Jabacco
 


 

No. 7



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

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


Quote:
พี่ tungman ค่ะ คือกวางใช้มาเปรียบเทียบประเภทสัตว์เลี้ยงกับเพศอ่ะคะ ถ้าไม่ใช้ like รบกวนแนะกวางด้วยนะคะ


ไม่ทันแล้วแหละครับ มันต้องไปแก้ตั้งแต่ออกแบบฐานข้อมูลเลย ไว้แก้งานหน้าแล้วกัน

ประเภทสัตว์เลี้ยงให้แทนโดยใช้ key id เช่น

pettypeid | pettype
1 | dinosaur
2 | lizard
3 | gecko

petsexid | petsex
1 | ตุ๊ด
2 | ทอม
3 | ดี้

เวลา query ก็เอา id ไป query
Date : 2010-02-09 11:10:54 By : tungman
 


 

No. 8



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



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


ดู SQL Query แล้ว คาดว่า

SELECT
ServID,ServName,STypeCode,ServPrice
FROM
Service,service_price
WHERE
ForType like '%" & lb_TypePet.Text & "%'
AND
ForSex like '%" & lb_Sex.Text & "%'
AND
ServCode = ServID
AND
'" & CDbl(lb_Weight.Text) & "' <<< ไม่ต้องใส่ ' นะจ๊ะ แล้วก็ CDbl(lb_Weight.Text) อันนี้ ต้องเป็นชื่อ Field Table
BETWEEN
'Wmin' <<< อันนี้ต้องเป็นค่า เช่น 10 กิโลกรัม ก็ใส่ 10
AND
'Wmax'" <<< อันนี้ต้องเป็นค่าเช่นกัน เช่น 25 กิโลกรัม ก็ใส่ 25

น้องควรแยกคำสงวนใน SQL เป็นตัวพิมพ์ใหญ่นะ จะได้ไม่งงเอง อ่าน code ง่าย เข้าใจง่าย แล้วมันจะติดตัวน้องไปตลอด ไปใช้ในอนาคต
Date : 2010-02-09 11:14:47 By : numenoy
 


 

No. 9

Guest


Quote:
ปัญหาข้อ 2ใช้ Group by ServID สิครับ

Code (VB.NET)

Code (VB.NET)
st = "SELECT ServID,ServName,ForType,ForSex,STypeCode,SysCode,MIN(ServPrice) from Service,Service_Price WHERE ServID = ServCode GROUP BY ServID"


กวางลองแล้วค่ะ ไม่ได้ค่า ^^

Quote:


ไม่ทันแล้วแหละครับ มันต้องไปแก้ตั้งแต่ออกแบบฐานข้อมูลเลย ไว้แก้งานหน้าแล้วกัน

ประเภทสัตว์เลี้ยงให้แทนโดยใช้ key id เช่น

pettypeid | pettype
1 | dinosaur
2 | lizard
3 | gecko

petsexid | petsex
1 | ตุ๊ด
2 | ทอม
3 | ดี้

เวลา query ก็เอา id ไป query


ทันค่ะ แฮะ กวางเพิ่งสร้าง database ใหม่ เนื่องจาก กวางเพิ่งลง OS ใหม่ แล้วดัน restore database ที่ backup ไว้แล้วไม่ได้อะค่ะ

งั้น data type ควรเป็น int เหรอค่ะ รบกวนแนะนำด้วยค่ะ ตอนนี้ส่วนนี้เป็นส่วนเดียวที่ค้างคาเลยค่ะ


Quote:
ไม่ทราบว่าได้หรือป่าวครับ ตอบช้าไปนิดเดียวไม่งั้นคุณกวางได้เอาไปลองดูแล้ว ส่วน Codeตัวแรกผมอยากทราบว่า Wmax กับ Wmin ของคุณกวางเอามาจากไหนเหรอครับ ถ้าเป็นของ
ตารางอื่นผมว่าไป SELECT มาก่อนแล้วยัดเข้าตัดแปร 2 ตัวของ VB แล้วนำมา SELECT ตาม Code ของคุณกวางดูนะครับ อยากช่วยแต่ผมไม่เขียน VB อ่ะครับ


Wmax กับ Wmin เป็นขอบเขตน้ำหนักที่เป็นตัวกำหนด rate ราคาของแต่ละบริการค่ะ มาจากตาราง Service_Price ค่ะ
Date : 2010-02-09 11:54:29 By : Kwang196
 


 

No. 10



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



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


Quote:
ดู SQL Query แล้ว คาดว่า

SELECT
ServID,ServName,STypeCode,ServPrice
FROM
Service,service_price
WHERE
ForType like '%" & lb_TypePet.Text & "%'
AND
ForSex like '%" & lb_Sex.Text & "%'
AND
ServCode = ServID
AND
'" & CDbl(lb_Weight.Text) & "' <<< ไม่ต้องใส่ ' นะจ๊ะ แล้วก็ CDbl(lb_Weight.Text) อันนี้ ต้องเป็นชื่อ Field Table
BETWEEN
'Wmin' <<< อันนี้ต้องเป็นค่า เช่น 10 กิโลกรัม ก็ใส่ 10
AND
'Wmax'" <<< อันนี้ต้องเป็นค่าเช่นกัน เช่น 25 กิโลกรัม ก็ใส่ 25

น้องควรแยกคำสงวนใน SQL เป็นตัวพิมพ์ใหญ่นะ จะได้ไม่งงเอง อ่าน code ง่าย เข้าใจง่าย แล้วมันจะติดตัวน้องไปตลอด ไปใช้ในอนาคต

ขอบคุณมาก ๆ เลยค่ะ กวางจะปรับปรุงการเขียนค่า เดี๋ยวจะลองแก้ไขตามนี้ดูนะคะ จะกลับมาแจ้งผลค่า
Date : 2010-02-09 12:01:05 By : Kwang196
 


 

No. 11



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



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


ตอนนี้ในปัญหาข้อแรก กวางทำได้แล้วค่ะรูปแบบคำสั่งดังนี้ค่า

Code (VB.NET)
        Dim st As String = "select ServID,ServName,ServPrice,STypeCode from Service,service_price where ForType like '%" & lb_TypePet.Text & "%' and ForSex like '%" & lb_Sex.Text & "%' and ServCode = ServID and Wmin <= " & CDbl(lb_Weight.Text) & " and '" & CDbl(lb_Weight.Text) & "' <=  Wmax"



แต่ข้อ 2 ยังติดอยู่เลยค่ะ T^T
Date : 2010-02-09 22:57:21 By : Kwang196
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องคำสั่ง SQL ค่ะ [VB2008, SQL2008] รบกวนด้วยนะคะ1.ต้องการ select เพื่อแสดงข้อมูลการบริการและราคา
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่