Как получить сумму всех транзакций, произошедших до определенной даты в SQL Server - PullRequest
0 голосов
/ 03 апреля 2019

Я должен передать @fromdate и @todate в процедуре, и результат должен содержать openinbalance до или перед @fromdate и транзакции, выполненные до @todate. Начальный баланс будет суммой всех транзакций, совершенных до @fromdate. (считать от даты «2019-01-01»)

Ниже приведены таблицы

  1. Таблица 1: GL

      id    headid    openingbalance
      1      32            350000
    

2. Таблица 2: t_vt

       id   vid transtype  headid   amount
       1    1      c          32    15000
       1    2      c          32    25000
  1. Таблица 3: ТВЧ

      vid   tdate           amount
       1    2019-01-01  15000
       2    2019-01-11  25000
    

Я пытался подписаться на запрос

SELECT  T1.HeadId,'2019-01-01' as FromdATE,t1.OpeningBalance
FROM     gl  T1
join t_vt v on v.headId=T1.HeadId
join tvh tvh  on tvh.vId=v.vId
WHERE    t1.HeadId =32 AND tvh.tDate<='2019-01-12'

мой ожидаемый результат

HeadId  FromdATE    OpeningBalance
32       2019-01-12      350000

но мой фактический результат

HeadId  FromdATE    OpeningBalance
 32      2019-01-12          350000
 32      2019-01-12          350000

демо: https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=f88d8dbbe35aae06795ecbe9022b9730

1 Ответ

0 голосов
/ 03 апреля 2019

использование distinct

SELECT distinct  T1.HeadId,'2019-01-12' as FromdATE,t1.OpeningBalance
FROM     gl  T1
join t_vt v on v.headId=T1.HeadId
join tvh tvh  on tvh.vId=v.vId
WHERE    t1.HeadId =32 AND tvh.tDate<='2019-01-12'

выход

HeadId  FromdATE    OpeningBalance
 32     2019-01-12   350000
...