我有三张table如下。
表1:
╔═════════════════════╗
║ Country_table ║
╠══════════════╦══════╣
║ Country_Name ║ Code ║
╠══════════════╬══════╣
║ India ║ 1 ║
╠══════════════╬══════╣
║ UK ║ 2 ║
╠══════════════╬══════╣
║ france ║ 3 ║
╠══════════════╬══════╣
║ germany ║ 4 ║
╚══════════════╩══════╝
表2:
╔════════════════════════════════════════════════════════════════════════════════╗
║ Trade_Details ║
╠═════════╦═══════════╦═════════════╦═══════════╦══════════╦════════╦════════════╣
║ TradeID ║ ProductID ║ FromCountry ║ ToCountry ║ Curruncy ║ Amount ║ Date ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T1 ║ P1 ║ 1 ║ 3 ║ INR ║ 10 ║ 01/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T2 ║ P2 ║ 3 ║ 2 ║ USD ║ 11 ║ 10/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T3 ║ P1 ║ 1 ║ 4 ║ GBP ║ 12 ║ 20/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T4 ║ P2 ║ 2 ║ 3 ║ INR ║ 13 ║ 21/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T5 ║ P1 ║ 1 ║ 4 ║ USD ║ 14 ║ 22/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T6 ║ P2 ║ 4 ║ 2 ║ GBP ║ 15 ║ 23/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T7 ║ P1 ║ 3 ║ 1 ║ INR ║ 16 ║ 24/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T8 ║ P2 ║ 3 ║ 1 ║ USD ║ 17 ║ 25/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T9 ║ P1 ║ 2 ║ 3 ║ GBP ║ 18 ║ 26/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T10 ║ P2 ║ 1 ║ 4 ║ INR ║ 19 ║ 27/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T11 ║ P1 ║ 3 ║ 1 ║ USD ║ 20 ║ 28/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T12 ║ P2 ║ 1 ║ 1 ║ GBP ║ 21 ║ 29/01/2020 ║
╠═════════╬═══════════╬═════════════╬═══════════╬══════════╬════════╬════════════╣
║ T13 ║ P1 ║ 2 ║ 2 ║ INR ║ 22 ║ 30/01/2020 ║
╚═════════╩═══════════╩═════════════╩═══════════╩══════════╩════════╩════════════╝
表3:
╔═══════════════════════════════════════════════════════╗
║ TradeStatus_Table ║
╠═════════╦════════════╦═══════════════════╦════════════╣
║ TradeID ║ StatusCode ║ StatusDescription ║ Date ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T1 ║ inProcess ║ Reached HUB1 ║ 01/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T1 ║ inProcess ║ Reached HUB2 ║ 01/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T1 ║ inProcess ║ Reached HUB3 ║ 01/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T1 ║ delivered ║ delivered ║ 01/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T2 ║ inProcess ║ Reached HUB1 ║ 10/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T2 ║ inProcess ║ Reached HUB2 ║ 10/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T2 ║ inProcess ║ Reached HUB3 ║ 10/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T2 ║ Returned ║ returned to home ║ 10/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T3 ║ inProcess ║ Reached HUB1 ║ 20/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T3 ║ inProcess ║ Reached HUB2 ║ 20/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T3 ║ inProcess ║ Reached HUB3 ║ 20/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T3 ║ inProcess ║ Reached HUB4 ║ 20/01/2020 ║
╠═════════╬════════════╬═══════════════════╬════════════╣
║ T3 ║ inProcess ║ Reached HUB5 ║ 20/01/2020 ║
╚═════════╩════════════╩═══════════════════╩════════════╝
输出表:
Delivered : This column represents the total number of transactions final status as either delivered or returned.
InProcess : This column represents the total number of transactions doesn't contains final status as either delivered or returned.
╔═════════════════════════════════════════════════════════════════════╗
║ Report 1 (example) ║
╠═════════════╦═══════════╦═══════════╦═══════════╦═══════════════════╣
║ FromCountry ║ ToCountry ║ Delivered ║ inProcess ║ Description ║
╠═════════════╬═══════════╬═══════════╬═══════════╬═══════════════════╣
║ India ║ UK ║ 1 ║ 1 ║ total transactions║
╠═════════════╬═══════════╬═══════════╬═══════════╬═══════════════════╣
║ UK ║ India ║ 2 ║ 1 ║ total transactions║
╠═════════════╬═══════════╬═══════════╬═══════════╬═══════════════════╣
║ France ║ India ║ 2 ║ 1 ║ total transactions║
╚═════════════╩═══════════╩═══════════╩═══════════╩═══════════════════╝
No of Trades : This column contains Total number of transactions were made between from country and to country.
Total Trade Value :- This column contains Total sum of value of the transactions made between from country and to country based on currency type.
╔═══════════════════════════════════════════════════════════════════════╗
║ Report 2 (example) ║
╠═════════════╦═══════════╦══════════════╦══════════╦═══════════════════╣
║ FromCountry ║ ToCountry ║ No of Trades ║ Currency ║ Total Trade Value ║
╠═════════════╬═══════════╬══════════════╬══════════╬═══════════════════╣
║ India ║ UK ║ 2 ║ INR ║ 1000 ║
╠═════════════╬═══════════╬══════════════╬══════════╬═══════════════════╣
║ India ║ UK ║ 1 ║ USD ║ 10 ║
╠═════════════╬═══════════╬══════════════╬══════════╬═══════════════════╣
║ UK ║ India ║ 2 ║ GBP ║ 10 ║
╠═════════════╬═══════════╬══════════════╬══════════╬═══════════════════╣
║ France ║ India ║ 1 ║ INR ║ 20 ║
╚═════════════╩═══════════╩══════════════╩══════════╩═══════════════════╝
我试过很多组合,但都不能算出所需的输出。请帮我解决这个问题。
第一个查询,但无法容纳进程内消息计数。
select source.Country_name, destination.country_name, count(*)
from Trade_Details, Country_table source, Country_table destination
where date > '2020/01/01 00:00:00'
and date <'2020/02/01/ 00:00:00'
and FromCountry = source.code
and ToCountry =destination.code
group by source.Country_name, destination.country_name
第二个问题,
select source.Country_name as source, destination.country_name as destination, count(*) as inprocessCount
from Trade_Details a1, Country_table source, Country_table destination
where date > '2020/01/01 00:00:00'
and date <'2020/02/01/ 00:00:00'
and FromCountry = source.code
and ToCountry =destination.code
and 0=(select count(*) from Trade_Details a2 where (a2.StatusCode='delivered' or a2.StatusCode='Returned') and a1.TradeID=a2.TradeID)
group by source.Country_name, destination.country_name
问题:
基本上,我希望合并两个查询输出以在单个查询中获得它。但未能实现。如果可能的话,你能帮我做这两份报告吗。
敬你,ks
1条答案
按热度按时间yqhsw0fo1#
在这里报告1个解决方案!!!