2015-11-09 5 views
-2

мне нужна помощь в SQL запросе, который даст мне статус основан на указанном ниже условиях -SQL запросы - Сумма Сетка

Если текст столбец имеет то же значение, как (AAA 7 BBB) и объем колонка для конкретного Entt и текста имеет такое же значение + ve и -ve, как (266.72), тогда статус должен быть сетью

Если столбец текста имеет те же значения, что и (XXX 8 ZZZ), и столбец «Сумма» для этого конкретного Entt и Text имеет другое значение: + ve или - (например, -19.20/18.51), тогда статус не должен быть сеттингом.

Для остальной части записей, статус не должен быть

из сетки

Заранее спасибо!

Text entt Amount Status 
XXXX Y3 AT00 29160 Netting 
XXXX Y3 AT00 29160 Netting 
XXXX Y3 AT00 -29160 Netting 
XXXX Y3 AT00 -29160 Netting 
XXXX Y3 AT00 27000 Netting 
XXXX Y3 AT00 34408.8 No Netting 
XXXX Y3 AT00 -27000 Netting 
XXXX Z4 AT00 34408.8 No Netting 
XXXX Z4 AT00 27000 Netting 
XXXX Z4 AT00 -29160 Netting 
XXXX Z4 AT00 29160 Netting 
XXXX Z4 AT00 -29160 Netting 
XXXX Z4 AT00 29160 Netting 
XXXX Z4 AT00 -27000 Netting 
+1

Вы даже попробовать, прежде чем отправлять вопрос? Если да, пожалуйста, покажите, что вы пробовали специально, чтобы мы могли помочь исправить любые проблемы. У нас нет ваших таблиц или данных. Кажется нецелесообразным ожидать, что мы напишем ваш запрос с нуля. – Turophile

ответ

1

Исходя из ваших правил и выборочных данных, следующее должно работать:

select t.*, 
     (case when exists (select 1 
          from t t2 
          where t2.entt = t.entt and t2.text = t.text and 
           t2.amount = -t.amount 
         ) 
      then 'Netting' 
      when exists (select 1 
          from t t2 
          where t2.entt = t.entt and t2.text = t.text and 
           t2.amount <> t.amount 
         ) 
      then 'Impossible Netting' 
      else 'No Netting' 
     end) as status 
from t; 
+0

ваш запрос не удастся для данных, которые я обновил сейчас в вышеприведенном сообщении .... Для статуса «Нет сетки» в вашем запросе отображается «Невозможная сеть» – baimzz

+0

@baimzz. , , Удалите второе условие 'when' в' case'. –

Смежные вопросы