TABLE_A
ve TABLE_B
var ve TABLE_B_FINAL
oluşturmak gerekir.
Kural: Biz TABLE_B
(satır ID_C=1
ve sütunun AFTER
) karşılık gelen bir değere sahip WEIGHT
değerini katlayacakID_C=1
değeri ve AB=AFTER
değeri TABLE_A
varsa.
Sonraki Örnekler: TABLE_B
(satır ID_C=1
ve sütunun BEFORE
) karşılık gelen bir değere sahip WEIGHT
değerini katlayacakID_C=1
değeri ve AB=BEFORE
değeri TABLE_A
varsa. Biz TABLE_B
(satır ID_C=2
ve sütunun AFTER
) karşılık gelen bir değere sahip WEIGHT
değerini katlayacak ID_C=2
değeri ve AB=AFTER
değeri TABLE_A
varsa.
Bu algoritma, TABLE_A
numaralı tüm kayıtları denetler ve WEIGHT
değerini TABLE_B
içinde karşılık gelen değerle çoğaltır.
Başlangıçta TABLE_B
tüm satırlarda ve sütunlarda (AFTER
ve BEFORE
) 1
varsayılan değerine sahiptir. Bu değer çarpımlar sırasında değişecektir.SQL'de tablo analizi
TABLE_A
ID_N|WEIGHT_N|ID_C |AB | 5 |1.15 | 1 |AFTER | 12 |1.13 | 1 |BEFORE | 60 |1.65 | 3 |AFTER | 90 |1.85 | 2 |AFTER | 80 |1.45 | 3 |AFTER | 140 |1.57 | 2 |BEFORE |
TABLE_B
|ID_C |BEFORE|AFTER| |1 |1 | 1 | |2 |1 | 1 | |3 |1 | 1 |
TABLE_B_FINAL
|ID_C |BEFORE |AFTER | |1 |1*1.13=1.13 | 1*1.15=1.15 | |2 |1,57 | 1,85 | |3 |1 | 1*1.65*1.45=2.39|
Lütfen bize şu ana kadar yaptığınız şeyleri, SQL komut dosyalarınızı ve tablo şemanızı gösterin. – stjepano
Benim düşüncem, TABLE_A'yı çalıştıran ve ilk döngü içinde olacak ve değerin AFTER veya ÖNCE olup olmadığını algılayan ID_C = 1,2,3, .... n ve ikinci çevrimi araştıran bir ilk döngü yapmaktır. Ama nasıl yapacağımı bilmiyorum. – hanznv
Döngüye veya döngüye gerek yoktur. Sadece table_a.ab değerine bağlı olarak doğru değerleri alın. Ve ürünü hesaplamak için yinelemeli sorguya ihtiyaç duyabilirsiniz: http://stackoverflow.com/a/36201120/2235885 – joop