สอบถามการ query ครับ
กระทู้เก่าบอร์ด อ.Yeadram

 1,568   3
URL.หัวข้อ / URL
สอบถามการ query ครับ

มีข้อมูลพนักงาน
id       position          s_date
1        ผจก.1             15.06.2513
2        ผอ.                 21.04.2510
3        เสมียน             20.08.2523
4.       วิศวกร             30.01.2525
5.       บัญชี               09.11.2520
6.       ผจก.2             10.10.2515
7.       ผจก.3             15.09.2510
     ผมต้องการอยากได้ข้อมุล โดยมีเงื่อนไข position ที่ขึ้นต้นด้วย ผจก. หรือ ผอ. ให้แสดงค่าเป็น null ถ้าไม่ใช่ให้แสดงค่าปกติ และให้คำนวณอายุงานจนถึงปัจจุบัน ซึ่งใน s_date จากเดิมเป็นปี พ.ศ. ให้เปลี่ยนเป็น ปี ค.ศ. โดยการ query

ผลลัพธ์
id           position        s_date           อายุงาน
1                                15.06.1970      38.11
2                                25.04.1967      42.1
3            เสมียน          20.08.1980       .........
4            วิศวกร           30.01.1982      ..........
5            บัญชี            09.11.1977       ..........
6                                10.10.1972       .........
7                                15.09.1967      ..........

ปล. ถ้าต้องการเปลี่ยน format ใน s_date จาก 15.06.1970 เป็น 15/06/1970 ทำไงครับ

   ขอบคุณมากครับ



3 Reply in this Topic. Dispaly 1 pages and you are on page number 1

1 @R02253
คุณลองใช้เงื่อนไข

select * from table where position IN {'ผจก','ผอ'}

และเงื่อนไขการแสดงค่า null น่าจะต้องใช้เงื่อนไขในการ join แทนอ่ะครับ
2 @R02260
มีวิธีที่ละเอียดกว่านี้มั๊ยครับ ยังงงอยู่
3 @R02264
คิวรี่ที่ 1 (q)
- จัดรูปแบบวันที่ และ สร้างค่า null

select id, iif(position like 'ผอ.' or positon like 'ผจก.', Null , position) as p, left(s_date,2) & "/" & mid(s_date,4,2) & "/" & right(s_date,4) -543 as d from table1;

คิวรี่ที่ 2 (myQuery)
- จัดแต่งชื่อฟิลด์, คำนวนอายุ
select id, p as position, d as s_date, datediff("yyyy",cdate(d),now()) as [อายุงาน] from q;

ปล. ถ้าอายุงานมันออกมาไม่ตรงตามต้องการเรื่องของหน่วย หรือค่าบวกลบ ให้ลองปรับแก้ ฟังก์ชั่น datediff เอานะครับ
@ ประกาศใช้งานเว็บบอร์ดใหม่ => บอร์ดเรียนรู้ Access สำหรับคนไทย
แล้วจะใส่ลิ้งอ้างอิงมาที่โพสต์เก่านี้หรือไม่ก็ตามสะดวกครับ
Time: 0.3566s