 |
ขอความช่วยเหลือ ใครเทพเขียน sql หน่อยครับ ผมงงแล้ว ตามรูปแนบ |
|
 |
|
|
 |
 |
|
ไม่ได้เทพ และ ไม่ได้เทส น่ะครับ
Code (SQL)
select * from tb_name where type=1 order by order_sq asc, c_date desc limit 5
|
 |
 |
 |
 |
Date :
2014-07-01 17:21:40 |
By :
mangkunzo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
sql ของท่าน mangkunzo ยังไม่ใช่ผลลัพธ์ที่ถูกต้องครับ
ของท่าน มันแสดงผล 5 แถวก็จริง แต่มันจะเอาข้อมูล type 1 ซ้ำ 2 รอบ คือข้อมูลที่ 1/7/2014 กับ 30/6/2014 ผลลัพธ์มันได้แบบนี้
ท่านใดเทพ SQL อีกมาเขียนให้หน่อยครับ
|
 |
 |
 |
 |
Date :
2014-07-01 17:35:07 |
By :
Art-B |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ค่อยๆปรับไปครับ 
|
 |
 |
 |
 |
Date :
2014-07-02 09:36:35 |
By :
mangkunzo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ความจริง แบบ คถ. แรกน่าจะได้แล้วนะค่ะ ^^
|
 |
 |
 |
 |
Date :
2014-07-02 10:38:44 |
By :
amjang22 |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เอาฐานข้อมูลตัวอย่าง มาวางได้ไหมครับ
มอง ๆ แล้ว ฟิวล์ c_date นี่ไม่น่าจะเก็บรูปแบบนี้เลยหน่ะครับ
|
 |
 |
 |
 |
Date :
2014-07-02 11:16:43 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แล้วทำไมต้องเก็บรูปแบบวันที่แบบนี้ และ ที่คุณเก็บ คุณเก็บเป็น type อะไร
|
ประวัติการแก้ไข 2014-07-03 11:58:25
 |
 |
 |
 |
Date :
2014-07-03 11:55:33 |
By :
FreshyMusiC |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
มองไปที่คำถาม เห็นบอกว่า
[font=Verdana]พร้อมต้องเป็นข้อมูลวันที่ล่าสุด[/font]

ผมไม่เชื่อ และ ไม่ลองสร้างตาราง ล่ะกันครับ
|
 |
 |
 |
 |
Date :
2014-07-03 13:04:43 |
By :
ไวยวิทย์ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ผมเชื่อครับว่าไม่ได้ เพราะ field date คุณเก็บ type ไม่ถูก จะ order ให้ตาย ก็ไม่ได้ตามต้องการน่ะครับ หรือได้ ก็ไม่ถูกต้อง 100%
ข้อคิดง่ายๆ สำหรับคนพัฒนาระบบ
-เก็บข้อมูลอะไร ใช้ type ให้ถูกตั้งแต่แรก แล้วอะไรๆจะง่ายครับ
-เก็บ date ใช้ type date, เก็บ string, char ใช้ type varchar ก็ได้
-เก็บตัวเลข ใช้ type int เก็บจำนวนนับ(จำนวนเงิน ราคา) .ใช้ type decimal, float, double ตามต้องการ
ถ้าเก็บไม่ถูก type ปัญหาจะตามมาเรื่อยๆ ยกตัวอย่าง กระทู้นี้ เป็นต้น ครับ 
|
ประวัติการแก้ไข 2014-07-03 13:37:16
 |
 |
 |
 |
Date :
2014-07-03 13:36:26 |
By :
mangkunzo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (SQL)
select type, order_sq, max(c_date) mcd from TableA where type=1 group by order_sq limit 5
อันนี้จะได้แค่ type, order_sq, mcd
แต่ถ้าอยากได้ ทุกฟีลด์
Code (SQL)
select B.*
from (select type, order_sq, max(c_date) mcd from TableA where type=1 group by order_sq limit 5) as A
left join TableA as B on B.c_date=A.mcd
ไม่ได้เป็นเซียนครับ แค่พอมีประสบการณ์อยู๋บ้าง
ปล. ผมไม่ได้คำนึงถึงรูปแบบวันที่นะครับ อันนี้ผู้สร้างต้องไปทำให้ถูกต้องเอง
ผมมองว่าเมื่อเป็น type date คุณจะนำเสนอรูปแบบไหนก็ตาม แต่ใน field มันเป็น type date มาตราฐานครับ
|
ประวัติการแก้ไข 2014-07-03 14:09:35 2014-07-03 14:23:03
 |
 |
 |
 |
Date :
2014-07-03 14:08:42 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|