mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-04-21 19:45:56 +03:00
209 lines
9.5 KiB
Plaintext
209 lines
9.5 KiB
Plaintext
# -------------------------------------------------------------- #
|
|
# Test case migrated from regression test suite: bug3948.sql
|
|
#
|
|
# Author: Daniel Lee, daniel.lee@mariadb.com
|
|
# -------------------------------------------------------------- #
|
|
#
|
|
--source ../include/have_columnstore.inc
|
|
#
|
|
USE tpch1;
|
|
#
|
|
--disable_warnings
|
|
drop table if exists fct_summary_transactional_snapshot;
|
|
drop table if exists dim_c_bridge_duration;
|
|
drop table if exists fct_macro_payment_details;
|
|
drop table if exists dim_c_calendar;
|
|
--enable_warnings
|
|
|
|
CREATE TABLE `fct_macro_payment_details` (
|
|
`TRANSACTION_DW_ID` bigint(20) DEFAULT NULL,
|
|
`TRANSACTION_ID` varchar(255) DEFAULT NULL,
|
|
`TRANSACTION_DATE` date DEFAULT NULL,
|
|
`TRANSACTION_DATE_KEY` bigint(20) DEFAULT NULL,
|
|
`PAYMENT_AMOUNT` double DEFAULT NULL,
|
|
`SOURCE_SYSTEM_NAME` varchar(255) DEFAULT NULL,
|
|
`LAST_UPDATE_DATE` datetime DEFAULT NULL,
|
|
`LAST_UPDATE_USER` varchar(7) DEFAULT NULL,
|
|
`PURCHASE_ORDER_NUMBER` varchar(255) DEFAULT NULL,
|
|
`APPROVAL_CODE` varchar(255) DEFAULT NULL,
|
|
`INVOICE_NUMBER` varchar(255) DEFAULT NULL,
|
|
`INVOICE_TEXT_DESCRIPTION` varchar(255) DEFAULT NULL,
|
|
`LEDGER_KEY` bigint(20) DEFAULT NULL,
|
|
`PAYMENT_METHOD_KEY` bigint(20) DEFAULT NULL,
|
|
`INVOICE_DATE_KEY` bigint(20) DEFAULT NULL,
|
|
`INVOICE_RECIEVED_DATE_KEY` bigint(20) DEFAULT NULL,
|
|
`INVOICE_PAYMENT_DATE_KEY` bigint(20) DEFAULT NULL,
|
|
`OPRA_COMMODITY_KEY` bigint(20) DEFAULT NULL,
|
|
`ORIGINAL_OPRA_COMMODITY_KEY` bigint(20) DEFAULT NULL,
|
|
`PAYMENT_LOCATION_GEOGRAPHY_KEY` bigint(20) DEFAULT NULL,
|
|
`BUSINESS_UNIT_KEY` bigint(20) DEFAULT NULL,
|
|
`CLIENT_VENDOR_KEY` bigint(20) DEFAULT NULL,
|
|
`CLIENT_VENDOR_FAMILY_KEY` bigint(20) DEFAULT NULL,
|
|
`DATA_SOURCE_FILE_NAME` varchar(255) DEFAULT NULL,
|
|
`ITEM_NUMBER` varchar(100) DEFAULT NULL,
|
|
`ITEM_DESCRIPTION` varchar(250) DEFAULT NULL,
|
|
`VOUCHER_LINE_DESCRIPTION` varchar(250) DEFAULT NULL,
|
|
`UNIT_PRICE` double DEFAULT NULL,
|
|
`QUANTITY` int(11) DEFAULT NULL,
|
|
`CATALOG_ITEM_NUMBER` varchar(100) DEFAULT NULL,
|
|
`MFG_ITEM_SKU_NUMBER` varchar(100) DEFAULT NULL,
|
|
`PAYMENT_CURRENCY_KEY` bigint(20) DEFAULT NULL,
|
|
`PAYMENT_UNIT_OF_MEASURE_KEY` bigint(20) DEFAULT NULL,
|
|
`buyer_key` bigint(20) DEFAULT NULL
|
|
) engine=columnstore DEFAULT CHARSET=utf8;
|
|
|
|
|
|
|
|
CREATE TABLE `dim_c_calendar` (
|
|
`DATE_KEY` bigint(20) DEFAULT NULL,
|
|
`DATE_TYPE_DATA` date DEFAULT NULL,
|
|
`FULL_DATE_DESCRIPTION` varchar(50) DEFAULT NULL,
|
|
`CALANDER_YEAR` bigint(19) DEFAULT NULL,
|
|
`MONTH_KEY` bigint(19) DEFAULT NULL,
|
|
`CALENDER_MONTH_NUMBER` bigint(19) DEFAULT NULL,
|
|
`CALENDAR_MONTH_LONG_DESC` varchar(15) DEFAULT NULL,
|
|
`CALENDAR_MONTH_SHRT_DESC` varchar(3) DEFAULT NULL,
|
|
`CALENDAR_MONTH_DAY_NUMBER` bigint(19) DEFAULT NULL,
|
|
`CALENDAR_DAY_NUMBER` bigint(19) DEFAULT NULL,
|
|
`CALENDAR_DAY_LONG_NAME` varchar(10) DEFAULT NULL,
|
|
`CALENDAR_DAY_SHORT_NAME` varchar(3) DEFAULT NULL,
|
|
`WEEK_KEY` bigint(19) DEFAULT NULL,
|
|
`CALENDAR_WEEK_NUMBER` bigint(19) DEFAULT NULL,
|
|
`CALENDAR_QUARTER_NUMBER` bigint(19) DEFAULT NULL,
|
|
`CALENDAR_QUARTER_DESCRIPTION` varchar(2) DEFAULT NULL,
|
|
`FISCAL_YEAR_NUMBER` bigint(19) DEFAULT NULL,
|
|
`FISCAL_MONTH_NUMBER` bigint(19) DEFAULT NULL,
|
|
`FISCAL_DAY_NUMBER` bigint(19) DEFAULT NULL,
|
|
`FISCAL_WEEK_NUMBER` bigint(19) DEFAULT NULL,
|
|
`FISCAL_QRTR_NUMBER` bigint(19) DEFAULT NULL,
|
|
`FISCAL_QUARTER_DESCRIPTION` varchar(2) DEFAULT NULL,
|
|
`IS_WEEKDAY` varchar(1) DEFAULT NULL,
|
|
`IS_WEEKEND` varchar(1) DEFAULT NULL,
|
|
`IS_FEDERAL_HOLIDAY` varchar(1) DEFAULT NULL,
|
|
`IS_LOCAL_HOLIDAY` varchar(1) DEFAULT NULL
|
|
) engine=columnstore DEFAULT CHARSET=utf8;
|
|
|
|
CREATE TABLE `fct_summary_transactional_snapshot` (
|
|
`Domain_descriptor` varchar(25) DEFAULT NULL,
|
|
`Last_collection_date` date DEFAULT NULL,
|
|
`total_billed_or_spend` double DEFAULT NULL,
|
|
`total_number_invoices` bigint(20) DEFAULT NULL,
|
|
`month_key` bigint(20) DEFAULT NULL,
|
|
`duration_key_year` bigint(20) DEFAULT NULL,
|
|
`duration_key_qrtr` bigint(20) DEFAULT NULL,
|
|
`duration_key_mnth` bigint(20) DEFAULT NULL,
|
|
`opera_commodity_key` bigint(20) DEFAULT NULL
|
|
) engine=columnstore DEFAULT CHARSET=utf8;
|
|
|
|
CREATE TABLE `dim_c_bridge_duration` (
|
|
`Duration_Key` int(11) DEFAULT NULL,
|
|
`Month_key` int(11) DEFAULT NULL,
|
|
`Fiscal` int(11) DEFAULT NULL,
|
|
`Period_Size` varchar(20) DEFAULT NULL,
|
|
`Period_Name` varchar(20) DEFAULT NULL,
|
|
`Previous_Year_Key` int(11) DEFAULT NULL,
|
|
`Previous_Time_Period_Key` int(11) DEFAULT NULL,
|
|
`Parent_Key` int(11) DEFAULT NULL,
|
|
`Period_Label` varchar(20) DEFAULT NULL,
|
|
`Parent_Year_key` int(11) DEFAULT NULL,
|
|
`Year_Number` int(11) DEFAULT NULL,
|
|
`Quarter_Number` int(11) DEFAULT NULL,
|
|
`Month_Number` int(11) DEFAULT NULL,
|
|
`Period_Macro_Availability` int(11) DEFAULT NULL,
|
|
`Year_Quarter` int(11) DEFAULT NULL
|
|
) engine=columnstore DEFAULT CHARSET=utf8;
|
|
|
|
insert into dim_c_bridge_duration values
|
|
(1, 1, 1, 'Month', 'a', 1, 1, 1, 'a', 1, 1, 1, 1, 1, 1),
|
|
(1, 1, 1, 'Month', 'a', 1, 1, 1, 'a', 1, 1, 1, 1, 1, 1),
|
|
(1, 1, 1, 'Month', 'a', 1, 1, 1, 'a', 1, 1, 1, 1, 1, 1),
|
|
(1, 1, 1, 'Month', 'a', 1, 1, 1, 'a', 1, 1, 1, 1, 1, 1),
|
|
(1, 1, 1, 'Month', 'a', 1, 1, 1, 'a', 1, 1, 1, 1, 1, 1),
|
|
(1, 1, 1, 'Month', 'a', 1, 1, 1, 'a', 1, 1, 1, 1, 1, 1);
|
|
|
|
insert into dim_c_calendar values
|
|
(1, '2010-11-01', 'a', 1,1,1, 'a','a',1,1,'a','a',1,1,1,'a',1,1 ,1,1 ,1,'a', 'y', 'y', 'y','y'),
|
|
(1, '2010-11-01', 'a', 1,1,1, 'a','a',1,1,'a','a',1,1,1,'a',1,1 ,1,1 ,1,'a', 'y', 'y', 'y','y'),
|
|
(1, '2010-11-01', 'a', 1,1,1, 'a','a',1,1,'a','a',1,1,1,'a',1,1 ,1,1 ,1,'a', 'y', 'y', 'y','y');
|
|
|
|
insert into fct_macro_payment_details values
|
|
(1, 1, '2010-11-01',1, 1234.4, 'aaa', '2011-10-02 10:10:10', 'zz',1, 'a', 1, 'a', 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 'a', 'a', 'a', 'a', 2374.12, 1, 'a', 'a',1, 1, 1),
|
|
(1, 1, '2010-11-01',1, 1234.4, 'aaa', '2011-10-02 10:10:10', 'zz',1, 'a', 1, 'a', 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 'a', 'a', 'a', 'a', 2374.12, 1, 'a', 'a',1, 1, 1),
|
|
(1, 1, '2010-11-01',1, 1234.4, 'aaa', '2011-10-02 10:10:10', 'zz',1, 'a', 1, 'a', 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 'a', 'a', 'a', 'a', 2374.12, 1, 'a', 'a',1, 1, 1),
|
|
(1, 1, '2010-11-01',1, 1234.4, 'aaa', '2011-10-02 10:10:10', 'zz',1, 'a', 1, 'a', 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 'a', 'a', 'a', 'a', 2374.12, 1, 'a', 'a',1, 1, 1),
|
|
(1, 1, '2010-11-01',1, 1234.4, 'aaa', '2011-10-02 10:10:10', 'zz',1, 'a', 1, 'a', 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 'a', 'a', 'a', 'a', 2374.12, 1, 'a', 'a',1, 1, 1);
|
|
|
|
insert into fct_summary_transactional_snapshot values
|
|
('a','2010-11-01', 3423.13, 1 ,1,1,1 ,1,1),
|
|
('a','2010-11-01', 3423.13, 1 ,1,1,1 ,1,1),
|
|
('a','2010-11-01', 3423.13, 1 ,1,1,1 ,1,1);
|
|
|
|
SELECT * FROM
|
|
(SELECT 'YTDCurrentYear' AS PeriodDesc, round(sum(fct.payment_amount),2) AS Spend
|
|
FROM fct_macro_payment_details fct JOIN dim_c_calendar cal ON cal.DATE_KEY = fct.INVOICE_DATE_KEY
|
|
JOIN dim_c_bridge_duration dur ON dur.Month_key = cal.MONTH_KEY
|
|
WHERE duration_key IN
|
|
(SELECT duration_key FROM dim_c_bridge_duration dur
|
|
WHERE dur.month_key <= (SELECT distinct(month_key) FROM dim_c_calendar caln
|
|
WHERE date_type_data <=(SELECT Date_ADD((DATE_FORMAT(current_date(),'%Y-%m-01')),INTERVAL -1
|
|
YEAR) FROM DUAL))
|
|
AND period_size = 'Month'
|
|
AND parent_year_key =(SELECT DISTINCT(parent_year_key)
|
|
FROM dim_c_bridge_duration WHERE duration_key = (SELECT DISTINCT(previous_year_key)
|
|
FROM dim_c_bridge_duration WHERE duration_key=1)))
|
|
)b
|
|
JOIN
|
|
(SELECT 'YTDCurrentYear' AS PeriodDesc, COUNT(duration_key) AS MonthCount
|
|
FROM dim_c_bridge_duration
|
|
WHERE MONTH_KEY <= (SELECT distinct(month_key)
|
|
FROM fct_summary_transactional_snapshot WHERE opera_commodity_key = 1)
|
|
AND period_size = 'Month'
|
|
AND parent_year_key IN (SELECT DISTINCT(parent_year_key)
|
|
FROM dim_c_bridge_duration WHERE fiscal IN
|
|
(SELECT DISTINCT(fiscal) FROM dim_c_bridge_duration WHERE duration_key = 1 )
|
|
AND period_name IN (SELECT DISTINCT(period_name) FROM dim_c_bridge_duration
|
|
WHERE duration_key IN (SELECT duration_key_year FROM fct_summary_transactional_snapshot
|
|
WHERE opera_commodity_key = 1))))d
|
|
ON b.PeriodDesc = d.PeriodDesc ;
|
|
|
|
SELECT * FROM
|
|
(SELECT
|
|
'YTDCurrentYear' AS PeriodDesc,
|
|
COUNT(duration_key) AS MonthCount
|
|
FROM
|
|
dim_c_bridge_duration
|
|
WHERE
|
|
parent_year_key IN (SELECT DISTINCT(parent_year_key)FROM dim_c_bridge_duration
|
|
WHERE fiscal IN
|
|
(SELECT DISTINCT(fiscal) FROM dim_c_bridge_duration WHERE duration_key
|
|
= 1 )
|
|
AND period_name IN (SELECT DISTINCT(period_name) FROM dim_c_bridge_duration
|
|
)
|
|
)
|
|
)d
|
|
JOIN
|
|
(SELECT
|
|
'YTDCurrentYear' AS PeriodDesc,
|
|
round(sum(fct.payment_amount),2) AS Spend
|
|
FROM fct_macro_payment_details fct
|
|
JOIN dim_c_calendar cal
|
|
ON cal.DATE_KEY = fct.INVOICE_DATE_KEY
|
|
JOIN dim_c_bridge_duration dur
|
|
ON dur.Month_key = cal.MONTH_KEY
|
|
WHERE duration_key IN
|
|
(SELECT duration_key FROM dim_c_bridge_duration dur
|
|
WHERE dur.month_key <=
|
|
(SELECT month_key FROM dim_c_calendar caln limit 1 )
|
|
)
|
|
)b
|
|
ON b.PeriodDesc= d.PeriodDesc;
|
|
|
|
--disable_warnings
|
|
drop table fct_summary_transactional_snapshot;
|
|
drop table dim_c_bridge_duration;
|
|
drop table fct_macro_payment_details;
|
|
drop table dim_c_calendar;
|
|
--enable_warnings
|
|
#
|
|
|