กระทู้เก่าบอร์ด อ.Yeadram
2,040 3
URL.หัวข้อ /
URL
คิวรี่แบบมีเงื่อนไขมากกว่า 1 และเราระบุค่าเอง
เรียนผู้รู้ทุกท่านครับ มีข้อมูลดังนี้
fname period cause day order_day date
a 01 ขาด อา. 7 1/5/2008
a 02 ขาด อา. 7 1/5/2008
a 03 ขาด อา. 7 1/5/2008
a 04 ขาด อา. 7 1/5/2008
a 05 ขาด อา. 7 1/5/2008
a 06 ขาด อา. 7 1/5/2008
a 07 ขาด อา. 7 1/5/2008
a 01 ลากิจ อา. 7 1/5/2008
a 02 ลากิจ อา. 7 1/5/2008
a 03 ลากิจ อา. 7 1/5/2008
a 04 ลากิจ อา. 7 1/5/2008
a 05 ลากิจ อา. 7 1/5/2008
a 06 ลากิจ อา. 7 1/5/2008
a 07 ลากิจ อา. 7 1/5/2008
a 08 ลากิจ อา. 7 1/5/2008
a 01 เข้าร่วมฯ อา. 7 8/5/2008
a 02 เข้าร่วมฯ อา. 7 8/5/2008
a 03 เข้าร่วมฯ อา. 7 8/5/2008
a 01 ฝึกซ้อม อา. 7 15/5/2008
a 02 ไม่ระบุ อา. 7 22/5/2008
a 03 อื่นๆ อา. 7 29/5/2008
a 04 สาย <=10 อา. 7 5/6/2008
แต่อยากทำคิวรี่ให้แสดงข้อมูลตาม order_day และ period
เพื่อจะได้ทราบยอดของนักศึกษาว่าไม่เข้าชั้นเรียนในวันที่เราบรรยายมากี่ครั้งแล้วโดยเราจะระบุเพียง ลำดับที่ของวัน และ คาบที่เรามีการบรรยายเช่นบรรยายลำดับวันที่ 1 คาบ 1(จันทร์ คาบ 1) ลำดับวันที่ 2 คาบ 3(อังคารคาบ3) และบรรยายอีกวันคือศุกร์ คาบ 5ทำนองนนี้นะครับ แล้วให้แสดง
ชื่อนักศึกษา วัน คาบ วันที่บรรยาย สาเหตุของการขาด เป็นต้น ขอบคุณครับ
fname period cause day order_day date
a 01 ขาด อา. 7 1/5/2008
a 02 ขาด อา. 7 1/5/2008
a 03 ขาด อา. 7 1/5/2008
a 04 ขาด อา. 7 1/5/2008
a 05 ขาด อา. 7 1/5/2008
a 06 ขาด อา. 7 1/5/2008
a 07 ขาด อา. 7 1/5/2008
a 01 ลากิจ อา. 7 1/5/2008
a 02 ลากิจ อา. 7 1/5/2008
a 03 ลากิจ อา. 7 1/5/2008
a 04 ลากิจ อา. 7 1/5/2008
a 05 ลากิจ อา. 7 1/5/2008
a 06 ลากิจ อา. 7 1/5/2008
a 07 ลากิจ อา. 7 1/5/2008
a 08 ลากิจ อา. 7 1/5/2008
a 01 เข้าร่วมฯ อา. 7 8/5/2008
a 02 เข้าร่วมฯ อา. 7 8/5/2008
a 03 เข้าร่วมฯ อา. 7 8/5/2008
a 01 ฝึกซ้อม อา. 7 15/5/2008
a 02 ไม่ระบุ อา. 7 22/5/2008
a 03 อื่นๆ อา. 7 29/5/2008
a 04 สาย <=10 อา. 7 5/6/2008
แต่อยากทำคิวรี่ให้แสดงข้อมูลตาม order_day และ period
เพื่อจะได้ทราบยอดของนักศึกษาว่าไม่เข้าชั้นเรียนในวันที่เราบรรยายมากี่ครั้งแล้วโดยเราจะระบุเพียง ลำดับที่ของวัน และ คาบที่เรามีการบรรยายเช่นบรรยายลำดับวันที่ 1 คาบ 1(จันทร์ คาบ 1) ลำดับวันที่ 2 คาบ 3(อังคารคาบ3) และบรรยายอีกวันคือศุกร์ คาบ 5ทำนองนนี้นะครับ แล้วให้แสดง
ชื่อนักศึกษา วัน คาบ วันที่บรรยาย สาเหตุของการขาด เป็นต้น ขอบคุณครับ
3 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R00540
ขอบคุณครับ มันฟ้องแถวๆ นี้
absDate) = clng[ลำดับวันในสัปดาห์]), clng(period) = clngก็เลยลองเปลี่ยนจาก , มาเป็น ANDมันยอมให้รันคิวรี่ครับ
absDate) = clng[ลำดับวันในสัปดาห์]), clng(period) = clngก็เลยลองเปลี่ยนจาก , มาเป็น ANDมันยอมให้รันคิวรี่ครับ
3 @R00541
ครับ อ้อ ใช่ ผมเขียนสดหน้าเว็บ มันไม่มีระบบแจ้งเตือนว่าเขียนผิด
ขออภัยครับ ตัวแยกเงื่อนไขของ where ต้องเป็น And หรือ Or เท่านั้น
ที่ผมเขียนให้ไป ใช้ คอมม่า เหอๆ ผมนี่มั่วดีจังแต่ดูๆ ไปมาน่าจะมีอีกจุดที่ผิด
ฟังก์ชั่น day() ใช้หาวันที่ -ไม่เอาเดือนไม่เอาปี
ฟังก์ชั่น weekday() ใช้หาลำดับวันในสัปดาห์ 1-7
ฟังก์ชั่น weekdayname() ใช้แปลงค่า 1-7 นั้นเป็นชื่อวัน
เพราะฉะนั้น อากิวร์เมนต์ ที่ส่งเข้าฟังก์ชั่น weekdayname() ต้องอยู่ภายใน 1-7 เท่านั้น แต่ที่ผมให้ไป มันมีโอกาสเป็นได้ 1-31 จึงผิด ขอเปลี่ยนครับ
มันน่าจะเป็น
SELECT fname, period, cause, WeekdayName(Weekday(absDate, vbSunday), True, vbSunday) as dyName, absDate FROM ชื่อตาราง
WHERE weekday(absDate,vbSunday) = clng[ลำดับวันในสัปดาห์]) AND clng(period) = clng([คาบที่]);
ขออภัยครับ ตัวแยกเงื่อนไขของ where ต้องเป็น And หรือ Or เท่านั้น
ที่ผมเขียนให้ไป ใช้ คอมม่า เหอๆ ผมนี่มั่วดีจังแต่ดูๆ ไปมาน่าจะมีอีกจุดที่ผิด
ฟังก์ชั่น day() ใช้หาวันที่ -ไม่เอาเดือนไม่เอาปี
ฟังก์ชั่น weekday() ใช้หาลำดับวันในสัปดาห์ 1-7
ฟังก์ชั่น weekdayname() ใช้แปลงค่า 1-7 นั้นเป็นชื่อวัน
เพราะฉะนั้น อากิวร์เมนต์ ที่ส่งเข้าฟังก์ชั่น weekdayname() ต้องอยู่ภายใน 1-7 เท่านั้น แต่ที่ผมให้ไป มันมีโอกาสเป็นได้ 1-31 จึงผิด ขอเปลี่ยนครับ
มันน่าจะเป็น
SELECT fname, period, cause, WeekdayName(Weekday(absDate, vbSunday), True, vbSunday) as dyName, absDate FROM ชื่อตาราง
WHERE weekday(absDate,vbSunday) = clng[ลำดับวันในสัปดาห์]) AND clng(period) = clng([คาบที่]);
Time: 0.3584s
- เมื่อมีการเก็บวันที่ไว้แล้ว ไม่จำเป็นต้องเก็บ ชื่อวัน, ลำดับวัน ก็ได้ครับ มันซ้ำซ้อน
- - เราจะรู้ ลำดับวันได้จากฟังก์ชั่น weekday(ฟิลด์วันที่)
- - เราจะรู้ชื่อวันได้ได้จาก ฟังก์ชั่น weekdayname(ฟิลด์วันที่)
ดังนั้น จากข้อมูลตัวอย่างนี้ เราย่น ให้เหลือเท่าที่จำเป็นมีแค่ 4 ฟิลด์ครับ
fname, period, cause, absDate (ขอเปลี่ยนชื่อฟิลด์ date เป็น absDate)
SELECT fname, period, cause, weekdayname(day(absDate)) as dyName, absDate FROM ชื่อตาราง
WHERE day(absDate) = clng[ลำดับวันในสัปดาห์]), clng(period) = clng([คาบที่]);