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,027

HOME > .NET Framework > Forum > ช่วยเรื่องโค๊ต SQL ทีครับ ตันวิธีเขียน ระบบจองรถ ให้แสดงผลออกมาครับ



 

ช่วยเรื่องโค๊ต SQL ทีครับ ตันวิธีเขียน ระบบจองรถ ให้แสดงผลออกมาครับ

 



Topic : 123868



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



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




สวัสดีครับ พอดีติดปัญหาตรง Query ข้อมูลน่ะครับ

โดยมีข้อมูลรถจาก View_car
กับ TB ที่เป็นตัวเก็บข้อมูลการจองน่ะครับ

ปัญหาคือเวลาจะเรียกดูว่ารถคันไหนว่างให้โชว์ออกมา คันไหนไม่ว่างให้แสดงชื่อผู้จองน่ะครับ

พอเขียนไปสักแปปรถคันที่ไม่มีคนจองขึ้นครับแต่ คันที่เคยมีการจองไม่ขึ้นครับ



อันนี้เป็นโค๊ตที่เขียนแล้วมีการจองอยุ่จึงขึ้นชื่อผู้จอง
Code (SQL)
SELECT [CarLicense] as 'code', [CarType] as 'name',[fa_desc] as 'des' , 
 [Rate],rc.[Resource] as 'employee',rc.[DayStartRent] as 'start' , rc.[DayEndRent] as 'end'
FROM  [dbo].[VW_RentCar] tc 
LEFT JOIN [dbo].[TB_CarCentralRequest] rc on rc.[Car] = tc.CarLicense
WHERE ([CarLicense] like '%%' OR [CarType] like '%%')
and (
((rc.DayStartRent = '2016-07-18' or (rc.DayStartRent < '2016-07-18' and '2016-07-18' = rc.DayEndRent))
and (rc.DayEndRent = '2016-07-19' or rc.DayEndRent >= rc.DayStartRent))
or (rc.DayStartRent is null and rc.DayEndRent is null))


ผลการQueryออกมา
หๆ



อันนี้เป็นโค๊ตที่จองในวันที่ไม่มีการจองครับ (มีต้องมี ชง944 ด้วยเพราะไม่มีการจองในวันนี้)
Code (SQL)
SELECT [CarLicense] as 'code', [CarType] as 'name',[fa_desc] as 'des' , 
 [Rate],rc.[Resource] as 'employee',rc.[DayStartRent] as 'start' , rc.[DayEndRent] as 'end'
FROM  [dbo].[VW_RentCar] tc 
LEFT JOIN [dbo].[TB_CarCentralRequest] rc on rc.[Car] = tc.CarLicense
WHERE ([CarLicense] like '%%' OR [CarType] like '%%')
and (
((rc.DayStartRent = '2016-07-15' or (rc.DayStartRent < '2016-07-15' and '2016-07-15' = rc.DayEndRent))
and (rc.DayEndRent = '2016-07-15' or rc.DayEndRent >= rc.DayStartRent))
or (rc.DayStartRent is null and rc.DayEndRent is null))

ๆห



พอดีตันคิดไม่ออกครับพอมีเสนอวิธีไหมครับ? พอดีมือใหม่เลยเขียนแบบตันๆ



Tag : .NET, Ms SQL Server 2012, Web (ASP.NET), C#









ประวัติการแก้ไข
2016-07-15 11:22:33
2016-07-15 11:28:42
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2016-07-15 11:21:25 By : kokoit555 View : 1143 Reply : 6
 

 

No. 1



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



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


SQL ตัวที่ 2 หากผิดพลาดประการใด ต้องขออภัยในที่นี้ด้วยครับ

Code (SQL)
SELECT [CarLicense] as 'code', [CarType] as 'name',[fa_desc] as 'des' , 
 [Rate],rc.[Resource] as 'employee',rc.[DayStartRent] as 'start' , rc.[DayEndRent] as 'end'
FROM  [dbo].[VW_RentCar] tc 
LEFT JOIN [dbo].[TB_CarCentralRequest] rc on rc.[Car] = tc.CarLicense
WHERE ([CarLicense] like '%%' OR [CarType] like '%%')
and (rc.DayStartRent is null or rc.[DayStartRent] <> '2016-07-15') and (rc.[DayEndRent] is null or rc.[DayEndRent] <> '2016-07-15')
and [CarLicense] not in (select [CarLicense] FROM  [dbo].[VW_RentCar] tc 
LEFT JOIN [dbo].[TB_CarCentralRequest] sc on sc.[Car] = tc.CarLicense where (sc.[DayStartRent] < '2016-07-15' AND sc.[DayEndRent] > '2016-07-15'))












ประวัติการแก้ไข
2016-07-15 15:10:08
2016-07-16 09:35:39
2016-07-16 10:21:54
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-15 15:06:29 By : taotechnocom
 


 

No. 2



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



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


11


อันนี้ที่มันออกมาน่ะครับ ต้องการถ้าไม่มีในเวลาจองนี้ รถคัน 944 ต้องโชว์อันเดียว

เวลาเรียกไปใน Web app ถ้าในวันที่เขาจองไปชนกับวันที่มีการจองจะแสดงชื่อคนที่จองพร้อมเวลาด้วย

ถ้าไม่มีคือจะไม่มีการแสดงน่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-22 11:42:56 By : kokoit555
 

 

No. 3



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

เอาแบบไม่ต้องพื้นฐาน SQL ก็นี่เลย

เพิ่ม คอลัม status ให้มันไปเลย พอดีนึกถึงลานจอดรถใน เซนทรัล พอดี 5555

รถคันไหนว่างให้โชว์ Off

รถคันไหนไม่ว่างให้โชว์ On

มองๆดูแล้ว database ก็แปลกดีนะครับ
ลองออกแบบให้เป็นสัดส่วนกว่านี้ดีไม๊ครับ
เผื่อต่อไปได้ทำงานที่ใหญ่กว่าจะได้ออกแบบได้คล่องตัวมากขึ้น

หวังดีเพื่ออนาคต ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-22 14:07:26 By : lamaka.tor
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : lamaka.tor เมื่อวันที่ 2016-07-22 14:07:26
รายละเอียดของการตอบ ::
มองถึงความเป็นจริงได้ดีมากเลยครับ 555+ แบบว่า เออ มันใช่อ่ะ
เราเอาเรื่องในชีวิตประจำวันมาปรับเข้ากับตัวระบบได้ง่ายๆเองนะ


ปัญหาคือเวลาจะเรียกดูว่ารถคันไหนว่างให้โชว์ออกมา คันไหนไม่ว่างให้แสดงชื่อผู้จองน่ะครับ
แปลว่าจะแสดงรถทุกคันที่มีใช่มั้ยครับ
ว่างก็แสดง
ไม่ว่างก็แสดง(+ชื่อคนจองด้วย)

งั้น select * from mycar มาเลยครับ
มา left join กับตารางการจองซึ่งก็มาถูกทางแล้วครับ แต่ยังไม่ทั้งหมด

Code (SQL)
and [CarLicense] not in (select [CarLicense] FROM  [dbo].[VW_RentCar] tc 
LEFT JOIN [dbo].[TB_CarCentralRequest] sc on sc.[Car] = tc.CarLicense where (sc.[DayStartRent] < '2016-07-15' AND sc.[DayEndRent] > '2016-07-15'))


เงื่อนไขตรงนี้ไม่ควรใส่ใน condition หลักนะครับ เพราะมันจะคัดเอาข้อมูลรถที่มีในตารางการจองรถออกไปหมดเลย
แล้วควรจะไปใส่ไว้ตรงไหนล่ะ ?
LEFT JOIN ด้านบนครับ เอาไปต่อท้ายกับ CarLicense

LEFT JOIN [dbo].[TB_CarCentralRequest] rc on rc.[Car] = tc.CarLicense
AND (rc.[DayStartRent] < '2016-07-15' AND rc.[DayEndRent] > '2016-07-15')
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-23 21:32:07 By : deksoke
 


 

No. 5



โพสกระทู้ ( 4,436 )
บทความ ( 23 )



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

จัดไปครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-25 08:32:05 By : lamaka.tor
 


 

No. 6



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



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


ตอบความคิดเห็นที่ : 4 เขียนโดย : deksoke เมื่อวันที่ 2016-07-23 21:32:07
รายละเอียดของการตอบ ::
ขอบคุณมากครับ เห็นทางสว่างขึ้นมาทันตาเห็นเลย ไม่นึกเลยว่าทางออกอยู่ใกล้นิดเดียว - -


อันนี้โค๊ตครับ ที่เขียนออกมา

Code (SQL)
SELECT [CarLicense] as 'code', [CarType] as 'name',[fa_desc] as 'des' , 
 [Rate] as 'rate',rc.[Resource] as 'employee',rc.[DayStartRent] as 'start' , rc.[DayEndRent] as 'end'
FROM  [dbo].[VW_RentCar] tc 
LEFT JOIN [dbo].[TB_CarCentralRequest] rc on rc.[Car] = tc.CarLicense
AND (((rc.DayStartRent = '2016-07-12' or (rc.DayStartRent < '2016-07-12' and '2016-07-12' = rc.DayEndRent))
and (rc.DayEndRent = '2016-07-19' or rc.DayEndRent >= rc.DayStartRent)) OR 
(CONVERT(DATE,rc.DayStartRent) BETWEEN '2016-07-12' and '2016-07-19')
AND (CONVERT(DATE,rc.DayEndRent) BETWEEN '2016-07-12' and '2016-07-19'))
WHERE ([CarLicense] like '%%' OR [CarType] like '%%' OR [fa_desc] like '%%')





อันนี้ผลลัพธ์ที่เขียนในวันที่มีในการจองครับ
111


อันนี้เขียนแบบไม่มีคนจองในวันนี้ครับ
222




ขอบคุณมากครับที่มาช่วยผม


ประวัติการแก้ไข
2016-07-25 10:30:10
2016-07-25 10:33:50
2016-07-27 15:24:17
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2016-07-25 10:26:21 By : kokoit555
 

   

ค้นหาข้อมูล


   
 

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