Как объединить элементы не из основной таблицы транзакций, а из таблицы подробностей

Вы можете получить расслоение в фрагменте:

@Override
public void onCreate(Bundle savedInstanceState) {
    Bundle bundle = getArguments();
    ....
}

или просто вызвать собственный метод в фрагменте:

public void notifyBundleUpdated() {
    Bundle bundle = getArguments();
    ....
}
0
задан a_horse_with_no_name 19 January 2019 в 15:55
поделиться

2 ответа

Вам потребуется использовать статистический запрос вместе с функцией агрегирования строк. Фактическая функция зависит от вашей СУБД:

  • oracle: LISTAGG
  • mysql: GROUP_CONCAT
  • sql-server> = 2017: STRING_AGG
  • postgres : STRING_AGG

Вот пример для mysql:

select 
    a.detail_number,
    group_concat(
        b.tender_number
        order by b.tender_number separator ', '
    ) as tender_numbers
from 
    dbo.proposal_header b
    inner join dbo.proposal_item a 
        on a.proposal_header_id =b.id
group by a.detail_number

Использование sql-сервера < 2017:

SELECT
    pi.detail_number,
    tender_numbers = STUFF(
        (
            SELECT ',' + ph.tender_number
            FROM dbo.dbo.proposal_header AS ph
            WHERE ph.id = pi.proposal_header_id
            ORDER BY ph.tender_number
        ).value('.', 'varchar(max)'),
        1, 
        1,
        ''
    )
FROM dbo.proposal_item AS pi
GROUP BY pi.detail_number
0
ответ дан GMB 19 January 2019 в 15:55
поделиться

К сожалению, в SQL Server 2012 необходимо использовать обходные пути. Лучший поток SO это:

https://stackoverflow.com/a/31212041/27876

0
ответ дан Jon Wilson 19 January 2019 в 15:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: