Как выделить значения в строке, чтобы они находились в собственном поле на основе значения даты - PullRequest
0 голосов
/ 12 января 2019

В приведенной ниже настройке таблицы вы увидите, что данные суммы разбиты на различные строки в таблице. Я создаю представление, где я хочу разбить это, где каждое значение Amount находится в своем собственном поле, основанном на поле CreatedDt. Таким образом, поля будут Fee1, Fee2, Fee3 и так далее, если будет больше сборов. У меня проблемы с придумыванием логики для этого.

Я пытался использовать первое и последнее значение, минимальное и максимальное значения, различные операторы case, и я не вижу успеха ни в одном из этих методов.

SELECT
`afpd`.`AppsID` AS `AppID`,
sum(case when ( `afpd`.`TxnTypeId` = 2 )  then `afpd`.`Amount` end)  as fee1 
FROM
(
    ( `appfee` `afpd` JOIN `tracking` `tra` ON ( ( `afpd`.`AppsID` = `tra`.`tci_application_id` ) ) )
    JOIN `faap` `fad` ON ( ( `afpd`.`AppsID` = `fad`.`ApplicationID` ) ) 
) 
WHERE
( `tra`.`tci_fee_submitted` = 11 ) 
GROUP BY
`afpd`.`AppsID`

Настройка таблицы:

TXNID    AppID    TXnType    Amount      CreatedDT   
1429513  3827558    2    -29.00      2017-11-01 06:18:00
1388653  3827558    2    -29.00      2017-10-15 06:24:00
1811017  3827558    2    -31.00      2018-05-02 07:07:00

Выше показано, как выглядит таблица, куда я извлекаю данные. Как вы можете видеть, суммы хранятся в виде строк, и я хочу взять это и создать поля полей: Fee1, Fee2, Fee3 и иметь Fee1 как последний CreatedDt, Fee2 будет средним CreatedDt, а Fee3 будет самым последним CreateDt.

...