SQL Команда для добавления поля или поля с формулой - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь добавить вызов поля MaxDate (последняя дата DOS из столбца DOS в таблице), который у меня есть в коде, чтобы он мог отображаться на выходе, но он не работает. my SQL Запрос выглядит следующим образом.

CODING

Select distinct t.RECORD_ID, t.SEQ_NO, t.CLAIM, t.HIC_NO as HICN_MBI ,t.ID, DOS, t.ERROR_1
 from Sandbox.dbo.XYZ t
 inner join (
  select CLAIM, max(DOS) as MaxDate
  from Sandbox.dbo.XYZ
  Group by CLAIM 
) tm on t.CLAIM = tm.CLAIM and t.DOS = tm.MaxDate
 where RECORD_ID='inf' OR RECORD_ID='REJ'
 and ERROR_1 in ('004',
                    '001',
                    '002',
                    '003')                  

                        
                

OUTPUT RETURN столбцы будут отображать столбцы, но maxdate не будет отображаться на выходе

RECORD_ID  SEQ_NO  CLAIM  HICN_MBI ID DOS ERROR_1

Что я делаю не так?

1 Ответ

0 голосов
/ 06 августа 2020

Причина, по которой код, который вы используете, не выбирает maxdate, заключается в том, что в операторе select вы не выбрали maxdate, он находится внутри псевдонима таблицы tm. Я добавил tm.maxDate в выбор, и это должно сработать.

SELECT DISTINCT t.RECORD_ID
    ,t.SEQ_NO
    ,t.CLAIM
    ,t.HIC_NO AS HICN_MBI
    ,t.ID
    ,DOS
    ,t.ERROR_1
    ,tm.MaxDate
FROM Sandbox.dbo.XYZ t
INNER JOIN (
    SELECT CLAIM
        ,max(DOS) AS MaxDate
    FROM Sandbox.dbo.XYZ
    GROUP BY CLAIM
    ) tm ON t.CLAIM = tm.CLAIM
    AND t.DOS = tm.MaxDate
WHERE RECORD_ID = 'inf'
    OR RECORD_ID = 'REJ'
    AND ERROR_1 IN (
        '004'
        ,'001'
        ,'002'
        ,'003'
        )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...