|  | 
	                
  
    | 
	 
        รบกวนพี่ๆหน่อยครับ ทำยังไงให้เราดึงข้อมูลจากเงื่อนไข SQL นี้ได้ครับ     |  
    |  |  
 
              
  
    | 
 
        
          |  |  |  |  |  
          |  |  | 
            
              | เริ่มต้น จัดการหาวันที่เกี่ยวข้องกันทั้งหมดก่อน Where clause 
 Code (SQL)
 
 
select * from table 
where (period_str between '$date_str' and '$date_end') 
or (period_end between '$date_str' and '$date_end') 
or ('$date_str' between period_str and period_end) 
or ('$date_end' between period_str and period_end) 
 นำ record ที่ได้ มาหา ระยะห่างของวัน
 Code (SQL)
 
 
select 
	((period_str<='$date_str')*(DATEDIFF(period_end, '$date_str')+1), # first_period
	(('$date_end'<=period_end)*(DATEDIFF('$date_end', period_str)+1), # last_period
	(('$date_str'<=period_str and period_end<='$date_end')*(DATEDIFF(period_end,period_str)+1), # mid_period
	baht
from table 
where (period_str between '$date_str' and '$date_end') 
or (period_end between '$date_str' and '$date_end') 
or ('$date_str' between period_str and period_end) 
or ('$date_end' between period_str and period_end) 
 นำมา รวมเป็น จำนวนเงิน
 Code (SQL)
 
 
select 
sum(
  (
	((period_str<='$date_str')*(DATEDIFF(period_end, '$date_str')+1)
	(('$date_end'<=period_end)*(DATEDIFF('$date_end', period_str)+1)+
	(('$date_str'<=period_str and period_end<='$date_end')*(DATEDIFF(period_end,period_str)+1)
  ) * baht
) as total
from table 
where (period_str between '$date_str' and '$date_end') 
or (period_end between '$date_str' and '$date_end') 
or ('$date_str' between period_str and period_end) 
or ('$date_end' between period_str and period_end)
 ปล. ทดลองเอาเองนะครับ ไม่ได้ทดสอบ แค่อธิบายตามกระบวนการความคิดมาให้เห็น
 และไม่ได้ คำนวณในส่วนของวันที่เดียวกันนะครับ ส่วนนี้ลองคิดเองก่อน ง่วงแล้วครับ(เลยลืม)
 ปล. อีกทีแก้ไขให้แล้วนะครับ
 
 |  
              | 
 ประวัติการแก้ไข
 2015-07-20 03:25:43
 2015-07-20 03:34:21
 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-07-20 03:17:50 | By :
                            NewbiePHP |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  
 
        
          |  |  |  |  |  
          |  |  | 
            
              | ว๊าว จัดเต็ม ขอบคุณครับ เดี่ยวจะลองนำไปประยุกต์ดูนะครับ 
 ขอบคุณจริงๆครับ
 
 |  
              | 
                
                  |  |  |  |  
                  |  | 
                      
                        | Date :
                            2015-07-22 19:46:40 | By :
                            ilikeit |  |  |  
                  |  |  |  |  |  |  |  
          |  |  |  |  |  |  |