กระทู้เก่าบอร์ด อ.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 ทำไงครับ
ขอบคุณมากครับ
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
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 เอานะครับ
- จัดรูปแบบวันที่ และ สร้างค่า 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 เอานะครับ
Time: 0.3566s
select * from table where position IN {'ผจก','ผอ'}
และเงื่อนไขการแสดงค่า null น่าจะต้องใช้เงื่อนไขในการ join แทนอ่ะครับ