Oldingi maydonlardagi qiymatlarga qarab joylar o'zgargan satrlarni qaytaring

Oldingi satr qiymatlarining dinamik birikmasidan kelib chiqqan holda, ikkinchi ustundan keyin har qanday sohada farq bo'lgan barcha qatorlarni qaytaradigan so'rovlar yaratishga harakat qilaman.

Stsenariy shunga o'xshash bo'lar edi:
Men kimni sotib olishni istagan mahsulotga oid bir qator savollar berishini so'rayman. Sotib olishni xohlagan mahsulot turini yaratgandan so'ng boshqa savol beraman. Ular bergan javobga qarab, boshqa savol berishi mumkin, ammo savol birinchi javobga qarab farq qilishi mumkin.

Here is an example set of data:

Item|Question1|Answer1|Question2|Answer2|Question3|Answer3
123|Front Door|Material|Wood|Type of Wood|Oak|Color|Red
456|Front Door|Material|Wood|Type of Wood|Oak|Color|Tan
789|Front Door|Material|Wood|Type of Wood|Oak|NULL|NULL
321|Front Door|Material|Steel|Type of Steel|T304|NULL|NULL
654|Front Door|Material|Steel|NULL|NULL|NULL|NULL
987|Closet Door|Material|Wood|Type of Wood|Oak|Color|Red
741|Closet Door|Material|Wood|Type of Wood|Oak|Color|Tan
852|Closet Door|Material|Steel|Type of Steel|T304|NULL|NULL
963|Closet Door|Material|Steel|Type of Steel|T304|NULL|NULL

I want to return all of the rows where there is a variance in the order of questions based on the previous answer, so the following rows would return:

123|Front Door|Material|Wood|Type of Wood|Oak|Color|Red
456|Front Door|Material|Wood|Type of Wood|Oak|Color|Tan
789|Front Door|Material|Wood|Type of Wood|Oak|NULL|NULL

Buning sababi men 789 uchun "Rang" so'rashni unutganligim yoki 123 va 456 uchun "Rang" so'ramasligim kerak

321|Front Door|Material|Steel|Type of Steel|T304|NULL|NULL
654|Front Door|Material|Steel|NULL|NULL|NULL|NULL

Buning sababi, 654 uchun "Chelik turi" ni so'rashni unutganligim yoki uni 321 uchun so'ramasligim kerak.

Savollarim bor, savollarning tartibida farq borligini aniqlash uchun so'rovlarim bor, lekin uni oldingi savolga qanday javob berish kerakligini aniqlab bo'lmaydi.

Oldindan rahmat!

0
Ma'lumotlar bazasini normalizatsiya qilib, keyin savolga javob berishda stabni olishimiz mumkin.
qo'shib qo'ydi muallif Michael Goldshteyn, manba
Kechirasiz-avvalgi qadriyatlarni emas, avvalgi qiymatlarni nazarda tutgan edim. A + b = c bo'lsa, a + b + c = d, keyin a + b + c + d = e ....
qo'shib qo'ydi muallif user955289, manba
Ma'lumotlar bazasida bironta o'zgarish qila olmayman. Men dba emasman va faqat o'qishga kirishdingiz. Buning yagona yo'li shundaymi?
qo'shib qo'ydi muallif user955289, manba
@Michael Golsteyn bilan kelishish. Jadval ITEM/QUESTION (ya'ni savol #)/JAVOB (ushbu savol uchun) bo'lsa, u holda muammo bazasiga asoslangan set-asosli echimga javob berishi mumkin. Masalan, siz deyarli protsessual kod yozishingiz yoki uni sxema bo'yicha formatga aylantirish uchun pivot so'rovini yozishingiz kerak bo'ladi.
qo'shib qo'ydi muallif Philip Kelley, manba
"Oldingi" qatorining nima ekanligini biz qanday bilishimiz kerak? Oldin nima ekanligini aniqlash uchun tarix maydoniga o'xshash biror narsa bormi? O'ylaymanki, foydalanuvchining 1-javobini, foydalanuvchi 2-ni aytganini, lekin yuqorida ko'rsatilgan ma'lumotlarni aks ettirmasligini ko'rsatib turibman.
qo'shib qo'ydi muallif billinkc, manba
Siz nima qilishni xohlasangiz, mutaxassis tizimi deb nomlanadi. Buni amalga oshirish uchun siz ba'zi dasturiy tilni ishlatmoqchisiz. Oldingi javoblarni o'zgarmaydigan yoki biror narsaga saqlashingiz mumkinmi?
qo'shib qo'ydi muallif skw, manba

Javob yo'q

0