Вывод отдельных транзакций SQL с несколькими позициями продаж, которые относятся к разным конфигурациям группы элементов - PullRequest
0 голосов
/ 29 мая 2019

Мне нужен запрос, который может вернуть транзакцию с несколькими элементами.Транзакция должна иметь несколько позиций, которые относятся к комбинации следующих групп:

100 Элементы сгруппированы в три группы.Ведро 49, ведро 50 и ведро 56.

Есть пункт 1, настроенный с ведром 49.

Есть элемент 2, настроенный с ведром 50.

И, наконец,остальные элементы настроены с корзиной 56.

Поиск запроса для выбора транзакции с комбо: -

Транзакция включает = 1 элемент (49) и 1 элемент (56)

или

Транзакция включает в себя = 1 элемент (50) и 1 элемент (56)

Это то, что я пробовал

**`select 
    INVENTTABLE.[COSTGROUPID],
    INVENTTABLE.[NAMEALIAS],
    #temp_whatIWantForRealsThisTime.STORE,
    #temp_whatIWantForRealsThisTime.TRANSACTIONID,
    sum(#temp_whatIWantForRealsThisTime.PRICE) as Transaction_Sum
from #temp_whatIWantForRealsThisTime 
join INVENTTABLE
    on INVENTTABLE.[ITEMID] = #temp_whatIWantForRealsThisTime.[ITEMID]
where [COSTGROUPID] in ('56', '49', '50')
and cast(#temp_whatIWantForRealsThisTime.TRANSDATE as date) between '2019-01-01' and '2019-05-28'
and #temp_whatIWantForRealsThisTime.ITEMID in ('I00075431', 'I00075432')
group by INVENTTABLE.[COSTGROUPID],
    INVENTTABLE.[NAMEALIAS],
    #temp_whatIWantForRealsThisTime.STORE,
    #temp_whatIWantForRealsThisTime.TRANSACTION_ID
order by Transaction_Sum desc;`**

Каждая транзакция, которую я просматриваюимеет только набор настроек для 56 или 49 или 50.

Но не комбинация

Транзакция включает в себя = 1 элемент (49) и 1 элемент (56)

или

Транзакция включает в себя = 1 предмет (50) и 1 предмет (56)

1 Ответ

0 голосов
/ 29 мая 2019

попробуйте ниже -

select 
    INVENTTABLE.[COSTGROUPID],
    INVENTTABLE.[NAMEALIAS],
    #temp_whatIWantForRealsThisTime.STORE,
    #temp_whatIWantForRealsThisTime.TRANSACTIONID,
    sum(#temp_whatIWantForRealsThisTime.PRICE) as Transaction_Sum
from #temp_whatIWantForRealsThisTime 
join INVENTTABLE
    on INVENTTABLE.[ITEMID] = #temp_whatIWantForRealsThisTime.[ITEMID]
where ([COSTGROUPID] ='56' AND [COSTGROUPID] ='49' AND [COSTGROUPID] ='50')
and cast(#temp_whatIWantForRealsThisTime.TRANSDATE as date) between '2019-01-01' and '2019-05-28'
and #temp_whatIWantForRealsThisTime.ITEMID in ('I00075431', 'I00075432')

UNION ALL

select 
    INVENTTABLE.[COSTGROUPID],
    INVENTTABLE.[NAMEALIAS],
    #temp_whatIWantForRealsThisTime.STORE,
    #temp_whatIWantForRealsThisTime.TRANSACTIONID,
    sum(#temp_whatIWantForRealsThisTime.PRICE) as Transaction_Sum
from #temp_whatIWantForRealsThisTime 
join INVENTTABLE
    on INVENTTABLE.[ITEMID] = #temp_whatIWantForRealsThisTime.[ITEMID]
where ([COSTGROUPID] ='56' AND [COSTGROUPID] ='50')
and cast(#temp_whatIWantForRealsThisTime.TRANSDATE as date) between '2019-01-01' and '2019-05-28'
and #temp_whatIWantForRealsThisTime.ITEMID in ('I00075431', 'I00075432')

UNION ALL 

select 
        INVENTTABLE.[COSTGROUPID],
        INVENTTABLE.[NAMEALIAS],
        #temp_whatIWantForRealsThisTime.STORE,
        #temp_whatIWantForRealsThisTime.TRANSACTIONID,
        sum(#temp_whatIWantForRealsThisTime.PRICE) as Transaction_Sum
    from #temp_whatIWantForRealsThisTime 
    join INVENTTABLE
        on INVENTTABLE.[ITEMID] = #temp_whatIWantForRealsThisTime.[ITEMID]
    where ([COSTGROUPID] ='49' AND [COSTGROUPID] ='50')
    and cast(#temp_whatIWantForRealsThisTime.TRANSDATE as date) between '2019-01-01' and '2019-05-28'
    and #temp_whatIWantForRealsThisTime.ITEMID in ('I00075431', 'I00075432')

UNION ALL

select 
        INVENTTABLE.[COSTGROUPID],
        INVENTTABLE.[NAMEALIAS],
        #temp_whatIWantForRealsThisTime.STORE,
        #temp_whatIWantForRealsThisTime.TRANSACTIONID,
        sum(#temp_whatIWantForRealsThisTime.PRICE) as Transaction_Sum
    from #temp_whatIWantForRealsThisTime 
    join INVENTTABLE
        on INVENTTABLE.[ITEMID] = #temp_whatIWantForRealsThisTime.[ITEMID]
    where ([COSTGROUPID] ='56' AND [COSTGROUPID] ='49')
    and cast(#temp_whatIWantForRealsThisTime.TRANSDATE as date) between '2019-01-01' and '2019-05-28'
    and #temp_whatIWantForRealsThisTime.ITEMID in ('I00075431', 'I00075432')

group by INVENTTABLE.[COSTGROUPID],
    INVENTTABLE.[NAMEALIAS],
    #temp_whatIWantForRealsThisTime.STORE,
    #temp_whatIWantForRealsThisTime.TRANSACTION_ID
order by Transaction_Sum desc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...