Member 13276583 Ответов: 1

В этой таблице сначала мне нужно проверить (1-1match) , а затем (1-many), а затем отобразить результат


В таблице сумм мне нужно проверить совпадение (1-1), а затем совпадение (1-много)
Сумма :
Amtsign Идентификатор АМТ
+пять. 1 100
+пять. 1 100
- ve. 1 -100
+пять. 1 100
- ve. 1 -200
- ve. 2 -200
- ve. 2. -200
+пять. 2 400
Результат должен отображаться следующим образом :
Amtsign Идентификатор АМТ Amtsign Идентификатор АМТ
+пять. 1 100. - пять. 1 -100 ( 1-1 )
+пять. 1 100. - пять. 1 -100. ( 1-м)
+пять. 1 100. - пять. 1 -100 (1-м)
+пять. 2 200. - пять. 2 -200 (1-м)
+пять. 2 200. - пять. 2 -200 (1-м)

Что я уже пробовал:

(Select * from amount group by id,amtsign having amtsign ='+ve ' ) a 
Inner join 
(Select * from amount group by id,sign having amtsign ='-ve' ) b 
On a.Amt = b.Amt
Я не могу агрегировать значения в " on function ", дайте мне знать, как получить результат выше

1 Ответов

Рейтинг:
2

RickZeeland

Я думаю, что это должно быть:

(Select * from amount) a 
Inner join amount b 
On a.Amt = b.Amt
group by id,amtsign having amtsign ='+ve ' OR amtsign ='-ve'
Или:
(Select * from amount group by id,amtsign having amtsign ='+ve ' ) a 
UNION
(Select * from amount group by id,sign having amtsign ='-ve' ) b 


Member 13276583

Спасибо за решение .... используя этот запрос, я могу получить ( 1-1 совпадение ) или (много ко многим совпадениям), как для данного идентификатора -1 Я получу сумму как (300 , -300) или (100, -100 ).... но мое требование состоит в том, чтобы сначала chk и соответствовать сценарию one-one (100 ,-100), а затем агрегировать оставшиеся значения , чтобы проверить 1-many сценариев ( 200, - 200), но результат должен отображаться как ( 100, -100) & ( 100, - 100)...