Neglect หลายอย่างในภาษา sql เซิร์ฟเวอร์จากสภาพและผลิตผลลัพธ์

0

คำถาม

ฉันต้องการต่อโต๊ะในภาษา sql เซิร์ฟเวอร์:

consult_date patient_id consultation_cost
-----------------------------------------
2021-10-30    1           -10
2021-05-30    1            10
2021-02-08    1            20
2021-01-27    1            22

ฉันอยากจะเลือกล่าสุด consult_date สำหรับผู้ป่วย 1 และสร้างเตือนความจำ. อยู่ล่าสุด consult_date คือ 2021-10-30 แต่ปัญหาก็คือระชุมถูกยกเลิกตั้งแต่ระชุมค่าเป็นลบที่นี่

ฉันอยากจะ neglect องนี้บันทึกเช่นเดียว neglect ที่ consult_date 2021-05-30 เช่นกันตั้งแต่ consultation_cost(10)เป็นที่คล้ายกันกับระชุมค่าใช้จ่าย(-10)ซึ่งได้ถูกยกเลิกแล้ว ดังนั้นข่าวล่าสุดคนให้คำปรึกษาอยู่จึงมอเดทควรจะ 2021-02-08.

ทางออกควรจะหาสูงสุดของระชุมออกเดท ถ้าค่าเป็นบวกนั้นถือว่านั้นเป็สูงสุดของระชุมออกเดท ถ้ามันเป็นยังงั้ neglect ที่บันทึกและ neglect ที่คล้ายกันราคาแพงด้านบวกค่าสำหรับคนเดียวกับคนไข้คนบันทึกและอีกคนสูงสุดของระชุมออกเดท

common-table-expression sql sql-server
2021-11-19 09:16:07
1

คำตอบที่ดีที่สุด

1

คุณสามารถใช้ผลรวมนือพื้นที่ดิสก์โดย[patient_id ในการส่งจดหมาย message->คำสั่งโดย[consult_date]และจากนั้นพสูงสุดของออกเดทกับเป็นบวกค่า.

Select patient_id, Max(consult_date) As consult_date
From (
Select consult_date, patient_id, SUM(consultation_cost) Over (Partition by patient_id Order by consult_date Desc) As Agg
From Tbl) As T
Where Agg>0
Group by patient_id

แสดงผล:

patient_id  consult_date
----------- ------------
1           2021-02-08
2021-11-19 09:40:59

ฉันชอบความคิดนี้ เราไม่รู้ว่ามันเป็นไปได้ที่จะมีคนใหม่ของแถวกับค่า -10,5,5 หรือ -10,5,อายุ 15 แล้วที่จะจัดการกับเรื่องคดีแต่คุณอทางแก้ปัญหานั่นดูเหมือนว่าเหมาะสมสำหรับเรื่องพิเศษเหตุการณ์จำลอง.
Thorsten Kettner

@Thorsten Kettner ขอบคุณสำหรับการประเมินผลบวก.
Anton Grig

ในภาษาอื่นๆ

หน้านี้อยู่ในภาษาอื่นๆ

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่