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 > PHP > PHP Forum > สอบถามครับ mysql การ Select ค้นหาเดือนมกราคม ว่าผ่านมากี่เดือน จากตารางครับ



 

สอบถามครับ mysql การ Select ค้นหาเดือนมกราคม ว่าผ่านมากี่เดือน จากตารางครับ

 



Topic : 129064



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



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




สอบถามครับ
1. mysql ต้องการ select ค้นหาว่าเดือนมกราคม ว่าผ่านมากี่เดือน จาก start_date และ stop_date โดย start_date = 2010-01-01 และ stop_date = 2017-12-31 รบกวนแนะนำด้วยครับผม
2. จากข้อ 1. ถ้าให้ทุกเดือน = 5 และ เฉพาะเดือนมกราคม = 10 ต้องการผมรวมทั้งหมด ใช้วิธีไหนได้บ้างครับ

ขอบพระคุณครับ



Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2017-10-01 17:00:06 By : gigiyo View : 792 Reply : 4
 

 

No. 1



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



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


ไม่รู้ว่าผมเข้าใจถูกหรือเปล่า?

ข้อ 1.
apply ตัวหนังสือสีอสีแดงให้ตรงกับฐานข้อมูลด้วยครับ

สีเขียวคือ Result ครับ

select count(monthsList) as mTotal from (select DATE_FORMAT(aDate,'%c') as monthsList from (
select @maxDate - interval (a.a + (10 * b.a) + (100 * c.a)) month as aDate from
(select 0 as a union all select 1 union all select 2 union all select 3
union all select 4 union all select 5 union all select 6 union all
select 7 union all select 8 union all select 9) a,
(select 0 as a union all select 1 union all select 2 union all select 3
union all select 4 union all select 5 union all select 6 union all
select 7 union all select 8 union all select 9) b,
(select 0 as a union all select 1 union all select 2 union all select 3
union all select 4 union all select 5 union all select 6 union all
select 7 union all select 8 union all select 9) c,
(select @minDate := start_date, @maxDate := stop_date from table where id=1) d // เลข 1 คือค่าอ้างอิง record ครับ
) e
where aDate between @minDate and @maxDate) as allMonths where monthsList = 1 // เลข 1 หมายถึงหาจำนวนเดือน มกราคมครับ



ข้อ 2.

Code
select sum(point) as totalPoint from
(select DATE_FORMAT(aDate,'%c') as monthsList, if(DATE_FORMAT(aDate,'%c')=1,10,5) as point from (
select @maxDate - interval (a.a + (10 * b.a) + (100 * c.a)) month as aDate from
(select 0 as a union all select 1 union all select 2 union all select 3
union all select 4 union all select 5 union all select 6 union all
select 7 union all select 8 union all select 9) a,
(select 0 as a union all select 1 union all select 2 union all select 3
union all select 4 union all select 5 union all select 6 union all
select 7 union all select 8 union all select 9) b,
(select 0 as a union all select 1 union all select 2 union all select 3
union all select 4 union all select 5 union all select 6 union all
select 7 union all select 8 union all select 9) c,
(select @minDate := start_date, @maxDate := stop_date from table where id=1) d
) e
where aDate between @minDate and @maxDate) as allMonths


ปล. ถ้าเป็นไปได้ ใช้ PHP process เถอะครับ จะไวกว่ากันเยอะครับ








ประวัติการแก้ไข
2017-10-02 01:12:09
2017-10-02 01:13:56
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-02 01:08:08 By : tomrambo
 


 

No. 2



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



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


ตอบความคิดเห็นที่ : 1 เขียนโดย : tomrambo เมื่อวันที่ 2017-10-02 01:08:08
รายละเอียดของการตอบ ::
ขอบคุณครับผมขอนำไปศึกษาน่ะครับผม

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-02 06:08:33 By : gigiyo
 

 

No. 3



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



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


ตัวอย่างนี้ นับจำนวนเดือน มกราที่ผ่าน แม้จะเพี่ยงเสี้ยว 1 เช่น ปีแรก ถ้าเป็น วันที่ 15 หรือ ปีสุดท้าย จะเป็นวันที่ 1 ก็นับ
Code (SQL)
select 
@jan:=((@y := year(sto) - year(sta)) + if( (@mst:=month(sta))>1, 0, 1)) as `จำนวนเดือนมกรา`,
(@y * 12 + (13 - @mst) - (12 - month(sto))) * 5 + (@jan * 5) as `รวมคะแนน`
from (select "2010-01-01" sta, "2017-02-01" sto) as t

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-02 07:40:57 By : Chaidhanan
 


 

No. 4



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



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


ตอบความคิดเห็นที่ : 3 เขียนโดย : Chaidhanan เมื่อวันที่ 2017-10-02 07:40:57
รายละเอียดของการตอบ ::
ขอคุณมากครับได้ความรู้เลยครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2017-10-02 19:16:23 By : gigiyo
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามครับ mysql การ 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 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 อัตราราคา คลิกที่นี่