Уважаемые знатоки!
Помогите с запросом. Даже сомневаюсь, что это можно сделать в одном запросе.
Есть данные с полями: Name, Type, Quantity, Price, Subtotal, Start Day, End Day
Нужно отобрать записи, анализируя Name&Type.
Мне кажется, что вначале нужно как-то отсечь те записи, где Name=1 (т.е. только 1 запись)
Type: new, renew, cycle, cancel, credit
Name&Type: могут быть в сочетании только с cancel или с cancel и credit.
1. Сочетания: new или renew или cycle только с cancel
теперь нужно анализировать Quantity:
если Quantity одинаковы, тогда Quantity= Quantity, Price= SUM(Price), Subtotal=SUM(Subtotal), Start Day= Start Day там, где Price>0, End Day=Start Day там, где Price <0
если Quantity разные, тогда Quantity= ABS (Quantity – Quantity), Price= >0, Subtotal=SUM(Subtotal), Start Day= Start Day там, где Price>0, End Day=Start Day там, где Price <0
Type = cancel
2. Сочетания: new или renew или cycle с cancel и credit
если все 3 Quantity одинаковы, тогда Quantity= 0, Price= >0, Subtotal=SUM(Subtotal), Start Day= Start Day там, где Type=cancel, End Day=End Day там, где Price <0
Type = cancel/credit
если Quantity разные, тогда на запись с credit не обращаем внимания, анализируем только new или renew или cycle только с cancel так как в 1 пункте.
Type = cancel
Помогите с запросом. Даже сомневаюсь, что это можно сделать в одном запросе.
Есть данные с полями: Name, Type, Quantity, Price, Subtotal, Start Day, End Day
Нужно отобрать записи, анализируя Name&Type.
Мне кажется, что вначале нужно как-то отсечь те записи, где Name=1 (т.е. только 1 запись)
Type: new, renew, cycle, cancel, credit
Name&Type: могут быть в сочетании только с cancel или с cancel и credit.
1. Сочетания: new или renew или cycle только с cancel
теперь нужно анализировать Quantity:
если Quantity одинаковы, тогда Quantity= Quantity, Price= SUM(Price), Subtotal=SUM(Subtotal), Start Day= Start Day там, где Price>0, End Day=Start Day там, где Price <0
если Quantity разные, тогда Quantity= ABS (Quantity – Quantity), Price= >0, Subtotal=SUM(Subtotal), Start Day= Start Day там, где Price>0, End Day=Start Day там, где Price <0
Type = cancel
2. Сочетания: new или renew или cycle с cancel и credit
если все 3 Quantity одинаковы, тогда Quantity= 0, Price= >0, Subtotal=SUM(Subtotal), Start Day= Start Day там, где Type=cancel, End Day=End Day там, где Price <0
Type = cancel/credit
если Quantity разные, тогда на запись с credit не обращаем внимания, анализируем только new или renew или cycle только с cancel так как в 1 пункте.
Type = cancel
Файл примера прилагаю.
Надежда только на Вас!