Thaiadmin

เขียน function หรือมีวิธีไหนในmssql ไหมครับ เพื่อแก้ไขข้อมูลให้ได้ตามต้องการ

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

table goods

id            name               price         date
1             นม                   10           01/01/59
2             นม                   11           05/01/59
3             นม                   0             09/01/59
4             นม                   0             12/01/59
5             นม                   12           14/01/59
6             นม                   0             16/01/59
7             น้ำ                   8             01/01/59
8             น้ำ                   9             05/01/59
9             น้ำ                   0             09/01/59
10           น้ำ                   0             12/01/59
11           น้ำ                   10           14/01/59
12           น้ำ                   0             16/01/59

ต้องการแก้price ที่เป็น 0 ให้เท่ากับราคาก่อนหน้านั้นครับ
ประมาณนี้หนะครับ
id            name               price         date
1             นม                   10           01/01/59
2             นม                   11           05/01/59
3             นม                   11           09/01/59
4             นม                   11           12/01/59
5             นม                   12           14/01/59
6             นม                   12           16/01/59
7             น้ำ                   8             01/01/59
8             น้ำ                   9             05/01/59
9             น้ำ                   9             09/01/59
10           น้ำ                   9             12/01/59
11           น้ำ                   10           14/01/59
12           น้ำ                   10           16/01/59


เขียน Query ตาม concept นี้ครับแล้วสั่งรัน Query แนะนำว่าให้ backup table ไว้ก่อนรัน Query ครับ

UPDATE  goods a
SET     a.price =
        (
          SELECT b.price
          FROM Tb_ข้างล่าง b
          WHERE a.id = b.id
          AND a.price = 0
        )
GO