สอบถามหาค่าหลายๆช่วงของตารางมารวมกันครับ


0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

28 ก.ย. 65 , 14:00:56
อ่าน 264 ครั้ง

arampong

กราบสวัสดีอาจารย์ครับ
สอบถามการหาค่าหลายๆช่วงของตารางมารวมกันครับ


จากรูปผมต้องการหาค่าไปแสดงที่ TextBox ครับ
คือผมได้ Query ข้อมูลตาม ComboBox บน Form
ที่่ FrmA มี CB01 เลือกวันที่จากตารง TB1 พิว DATEDATA
              CB02 เลือกวันที่จากตารง TB1 พิว NAME
คือพยายามกรองข้อมูลให้มากที่สุดครับ แล้ว
ทีนี้ผมอยากหาค่า MCDOWNTIME ค่ามากที่สุดของแต่ละครั้งมารวมกันครับ
ซึ่งบางทีก็มี 2 แถว บางที่ก็มี 3 แถว 10 แถว
และแถวแรกที่เริ่มต้นมีค่าเท่ากับ 0 เสมอครับ จะDownTimeต่อเนื่องตามภาพครับ
แล้วจะเข้าสถานะปกติค่าก็จะว่างครับ
จะมีวิธีดึงข้อมูลยังไงครับ

ค่าที่ต้องการคือ ผลรวมของDownTimeค่าสุดท้ายทุกช่วง
ที่DATEDATA=CB01 และ NAME=CB02 และพิวDOWNTIMECODE=11 ด้วย
ซึ่งจากในรูปผมรวมจะได้ 290+150+400 = 840
คือผมคิดได้ว่า ต้องหา Dmax แต่ละช่วงมาบวกกัน
แต่เหมือนมันต้องเขียนให้มันวน บวกกันไปจนหมดแถวทุกช่วง
แต่จะมีวิธีเขียนยังไงครับ
ขอความกรุณาด้วยครับ ขอบคุณครับ

 

28 ต.ค. 65 , 08:46:52
ตอบกลับ #1

arampong

หาวิธีไม่ได้จริงๆครับ
อาจารย์ท่านท่านไหน พอมีแนววิธีไหมครับ รบกวนแนะนำหน่อยครับ

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

 

28 ต.ค. 65 , 16:12:50
ตอบกลับ #2

UnKnown

จากเท่าที่ดูท่านต้องทำให้มีการแยกรอบการทำงานให้ออกเป็นชุดที่ชัดเจนกว่านี้ เช่น
StatusDateDataNameMCDOWNTIMEรอบ
setup10/10/2022PLR
Down10/10/2022PLR01
Down10/10/2022PLR1001
Down10/10/2022PLR2001
Run10/10/2022PLR
Run10/10/2022PLR
Down10/10/2022PLR02
Down10/10/2022PLR1202
Down10/10/2022PLR1502

ทีนี้ค่อยนำค่าสูงสุดของแต่ละรอบมาบวกกัน 200+150=350 เป็นต้น
ปล.เป็นแค่แนวคิดในการออกแบบนะครับ ส่วนชุดคำสั่งในการหาผลรวมของค่าสูงสุดนั้นผมไม่รู้เลย :dizzy:
:ninja:     ลองคิด,ลองทำแนวคนไม่เก่งแอคเซส
หมายเหตุ เพื่อความปลอดภัยโปรดสำรองข้อมูลใว้ก่อนการแก้ไข
 
โพสต์นี้ได้รับคำขอบคุณจาก: arampong

31 ต.ค. 65 , 23:55:51
ตอบกลับ #3

nonc31

จากข้อมูลที่ให้มา ถ้าเอาไปเรียง ลำดับจากน้อยไปหามาก  มันจะเรียงได้ยังไงครับ  ข้อมูลเดียวกัน เหมือนกันทุกแถว  มันต้องสร้างฟิลด์เพื่อระบุการทำงานก่อนหลังด้วยครับ เป็นไปได้ช่องวันที่ ควรเก็บวันที่ ที่มีเวลาเข้าไปด้วย  Now()  หรืออาจจะสร้างฟิลด์ ID  ขึ้นมา

 
โพสต์นี้ได้รับคำขอบคุณจาก: arampong

01 พ.ย. 65 , 13:27:38
ตอบกลับ #4

arampong

ขอขอบคุณทั้ง 2 ท่านมากครับ
ท่าน UnKnown และ ท่านnonc31 ครับ

พอจะคิดออกตามคำแนะนำท่าน UnKnown ครับ
คือ หากเจอ 0 ที่แถวไหน แล้วให้ทำการนับกลุ่มเริ่มจาก 0 ถึงตัวสุดท้าย
แล้วค่อยมาหาค่าครับ ตามคำแนะนำครับ
ได้ผลยังไงจะมาแจ้งให้ทราบอีกครั้งครับผม

ท่านnonc31 ครับตรงวันที่ปกติเป็น Now() ครับมันเกิดจากเครื่องจับเวลางานออกครับ
ผมนำมากรองข้อมูลเลยเอาแต่วันที่มา แต่ผมยังนึกไม่ออกว่าจะรวมกันยังไงครับ

เบื้องต้นขอทำตามคำแนะนำท่าน UnKnown ก่อนครับ
หากพอจะอะธิบายต่่อได้ก็ ขอรบกวนด้วยครับ


ขอบคุณครับ

 


บอร์ดเรียนรู้ Access สำหรับคนไทย