Skip to content

Commit 41021c0

Browse files
committed
MDEV-9462: Out of memory using explain on 2 empty tables
Fixed adding derived tables items to outer one.
1 parent ad94790 commit 41021c0

File tree

5 files changed

+604
-11
lines changed

5 files changed

+604
-11
lines changed

mysql-test/r/derived.result

Lines changed: 319 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,3 +605,322 @@ Warnings:
605605
Note 1276 Field or reference 'f2' of SELECT #3 was resolved in SELECT #1
606606
Note 1003 select 6 AS `f1` from <materialize> (select `test`.`t2`.`f3` from `test`.`t2` having (`test`.`t2`.`f3` >= 8)) semi join (`test`.`t2`) where ((`test`.`t2`.`f3` = 6) and (9 = `<subquery4>`.`f3`))
607607
DROP TABLE t2,t1;
608+
#
609+
# MDEV-9462: Out of memory using explain on 2 empty tables
610+
#
611+
CREATE TABLE `t1` (
612+
`REC_GROUP` char(2) DEFAULT NULL,
613+
`CLIENT_INFO` text CHARACTER SET utf8,
614+
`NAME` text,
615+
`PHONE_NUMBER` text,
616+
`ATTENTION_NAME` text,
617+
`PAYMENT_TERM` text CHARACTER SET utf8,
618+
`CREDIT_LIMIT` decimal(12,2) DEFAULT NULL,
619+
`LAST_PAY_DATE` text CHARACTER SET utf8,
620+
`TOTAL` double DEFAULT NULL,
621+
`TOTAL_MCL` double DEFAULT NULL,
622+
`TOTAL_MFS` double DEFAULT NULL,
623+
`TOTAL_MIS` double DEFAULT NULL,
624+
`BEFORE_DUE_7_MCL` double DEFAULT NULL,
625+
`BEFORE_DUE_7_MFS` double DEFAULT NULL,
626+
`BEFORE_DUE_7_MIS` double DEFAULT NULL,
627+
`PER1_MCL` double DEFAULT NULL,
628+
`PER1_MFS` double DEFAULT NULL,
629+
`PER1_MIS` double DEFAULT NULL,
630+
`PER2_MCL` double DEFAULT NULL,
631+
`PER2_MFS` double DEFAULT NULL,
632+
`PER2_MIS` double DEFAULT NULL,
633+
`PER3_MCL` double DEFAULT NULL,
634+
`PER3_MFS` double DEFAULT NULL,
635+
`PER3_MIS` double DEFAULT NULL,
636+
`PER4_MCL` double DEFAULT NULL,
637+
`PER4_MFS` double DEFAULT NULL,
638+
`PER4_MIS` double DEFAULT NULL,
639+
`PER5_MCL` double DEFAULT NULL,
640+
`PER5_MFS` double DEFAULT NULL,
641+
`PER5_MIS` double DEFAULT NULL,
642+
`PER6_MCL` double DEFAULT NULL,
643+
`PER6_MFS` double DEFAULT NULL,
644+
`PER6_MIS` double DEFAULT NULL,
645+
`PER7_MCL` double DEFAULT NULL,
646+
`PER7_MFS` double DEFAULT NULL,
647+
`PER7_MIS` double DEFAULT NULL,
648+
`BEFORE_DUE_7` double DEFAULT NULL,
649+
`PER1` double DEFAULT NULL,
650+
`PER2` double DEFAULT NULL,
651+
`PER3` double DEFAULT NULL,
652+
`PER4` double DEFAULT NULL,
653+
`PER5` double DEFAULT NULL,
654+
`PER6` double DEFAULT NULL,
655+
`PER7` double DEFAULT NULL,
656+
`REF` varchar(30) DEFAULT NULL,
657+
`TYPE` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL
658+
);
659+
CREATE TABLE `t2` (
660+
`RECEIVABLE_GROUP` char(2) DEFAULT NULL,
661+
`CLIENT_NUMBER` varchar(35) DEFAULT NULL,
662+
`CLIENT_NAME` varchar(73) DEFAULT NULL,
663+
`PHONE_NUMBER` char(12) DEFAULT NULL,
664+
`ATTENTION_NAME` char(26) DEFAULT NULL,
665+
`PAYMENT_TERM` varchar(26) CHARACTER SET utf8 DEFAULT NULL,
666+
`CREDIT_LIMIT` decimal(12,2) DEFAULT NULL,
667+
`LAST_PAY_DATE` varchar(42) CHARACTER SET utf8 DEFAULT NULL,
668+
`TOTAL` decimal(12,2) DEFAULT NULL,
669+
`BEFORE_DUE_7` decimal(12,2) DEFAULT NULL,
670+
`PER1` decimal(12,2) DEFAULT NULL,
671+
`PER2` decimal(12,2) DEFAULT NULL,
672+
`PER3` decimal(12,2) DEFAULT NULL,
673+
`PER4` decimal(12,2) DEFAULT NULL,
674+
`PER5` decimal(12,2) DEFAULT NULL,
675+
`PER6` decimal(12,2) DEFAULT NULL,
676+
`PER7` decimal(12,2) DEFAULT NULL,
677+
`DIVISION` varchar(3) CHARACTER SET utf8 NOT NULL,
678+
`CLIENT_INFO` varchar(294) CHARACTER SET utf8 DEFAULT NULL,
679+
`EXCHANGE_RATE` double NOT NULL,
680+
`REF` varchar(30) DEFAULT NULL
681+
);
682+
explain
683+
SELECT A.RECEIVABLE_GROUP,A.CLIENT_INFO,A.CLIENT_NAME,A.PHONE_NUMBER,A.ATTENTION_NAME,A.PAYMENT_TERM,A.CREDIT_LIMIT,A.LAST_PAY_DATE,A.TOTAL,
684+
COALESCE(B.TOTAL_MCL,0) AS TOTAL_MCL,
685+
COALESCE(C.TOTAL_MFS,0) AS TOTAL_MFS,
686+
COALESCE(D.TOTAL_MIS,0) AS TOTAL_MIS,
687+
COALESCE(F.BEFORE_DUE_7_MCL,0) AS BEFORE_DUE_7_MCL,
688+
COALESCE(G.BEFORE_DUE_7_MFS,0) AS BEFORE_DUE_7_MFS,
689+
COALESCE(H.BEFORE_DUE_7_MIS,0) AS BEFORE_DUE_7_MIS,
690+
COALESCE(I.PER1_MCL,0) AS PER1_MCL,
691+
COALESCE(J.PER1_MFS,0) AS PER1_MFS,
692+
COALESCE(K.PER1_MIS,0) AS PER1_MIS,
693+
COALESCE(L.PER2_MCL,0) AS PER2_MCL,
694+
COALESCE(M.PER2_MFS,0) AS PER2_MFS,
695+
COALESCE(N.PER2_MIS,0) AS PER2_MIS,
696+
COALESCE(O.PER3_MCL,0) AS PER3_MCL,
697+
COALESCE(P.PER3_MFS,0) AS PER3_MFS,
698+
COALESCE(R.PER3_MIS,0) AS PER3_MIS,
699+
COALESCE(S.PER4_MCL,0) AS PER4_MCL,
700+
COALESCE(T.PER4_MFS,0) AS PER4_MFS,
701+
COALESCE(U.PER4_MIS,0) AS PER4_MIS,
702+
COALESCE(V.PER5_MCL,0) AS PER5_MCL,
703+
COALESCE(X.PER5_MFS,0) AS PER5_MFS,
704+
COALESCE(Z.PER5_MIS,0) AS PER5_MIS,
705+
COALESCE(Q.PER6_MCL,0) AS PER6_MCL,
706+
COALESCE(Y.PER6_MFS,0) AS PER6_MFS,
707+
COALESCE(W.PER6_MIS,0) AS PER6_MIS,
708+
COALESCE(A1.PER7_MCL,0) AS PER7_MCL,
709+
COALESCE(B1.PER7_MFS,0) AS PER7_MFS,
710+
COALESCE(C1.PER7_MIS,0) AS PER7_MIS,
711+
A.BEFORE_DUE_7,A.PER1,A.PER2,A.PER3,A.PER4,A.PER5,A.PER6,A.PER7,
712+
CONCAT(A.DIVISION,'-',A.CLIENT_NUMBER) AS REF,"2" AS TYPE FROM
713+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,
714+
GROUP_CONCAT(DISTINCT CLIENT_INFO SEPARATOR '<br>') AS CLIENT_INFO,
715+
GROUP_CONCAT(DISTINCT CLIENT_NAME SEPARATOR '<br>') AS CLIENT_NAME,
716+
GROUP_CONCAT( DISTINCT `PHONE_NUMBER` SEPARATOR '<br>' ) AS PHONE_NUMBER ,
717+
GROUP_CONCAT( DISTINCT `ATTENTION_NAME` SEPARATOR '<br>' ) AS ATTENTION_NAME,
718+
GROUP_CONCAT( DISTINCT `PAYMENT_TERM` SEPARATOR '<br>' ) AS PAYMENT_TERM,
719+
CREDIT_LIMIT ,
720+
GROUP_CONCAT( `LAST_PAY_DATE` SEPARATOR '<br>' ) AS LAST_PAY_DATE,
721+
SUM( `TOTAL`*EXCHANGE_RATE ) AS TOTAL,
722+
SUM( `BEFORE_DUE_7`*EXCHANGE_RATE ) AS BEFORE_DUE_7,
723+
SUM( `PER1`*EXCHANGE_RATE ) AS PER1,
724+
SUM( `PER2`*EXCHANGE_RATE ) AS PER2,
725+
SUM( `PER3`*EXCHANGE_RATE ) AS PER3,
726+
SUM( `PER4`*EXCHANGE_RATE ) AS PER4,
727+
SUM( `PER5`*EXCHANGE_RATE ) AS PER5,
728+
SUM( `PER6`*EXCHANGE_RATE ) AS PER6,
729+
SUM( `PER7`*EXCHANGE_RATE ) AS PER7
730+
FROM `t2`
731+
WHERE REF IS NULL GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS A
732+
LEFT JOIN
733+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( `TOTAL`*EXCHANGE_RATE ) AS TOTAL_MCL
734+
FROM `t2`
735+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS B ON A.CLIENT_NUMBER=B.CLIENT_NUMBER AND
736+
A.DIVISION=B.DIVISION AND A.RECEIVABLE_GROUP=B.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=B.CREDIT_LIMIT
737+
LEFT JOIN
738+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( `TOTAL`*EXCHANGE_RATE ) AS TOTAL_MFS
739+
FROM `t2`
740+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS C ON A.CLIENT_NUMBER=C.CLIENT_NUMBER
741+
AND
742+
A.DIVISION=C.DIVISION AND A.RECEIVABLE_GROUP=C.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=C.CREDIT_LIMIT
743+
LEFT JOIN
744+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( `TOTAL`*EXCHANGE_RATE ) AS TOTAL_MIS
745+
FROM `t2`
746+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS D ON A.CLIENT_NUMBER=D.CLIENT_NUMBER AND
747+
A.DIVISION=D.DIVISION AND A.RECEIVABLE_GROUP=D.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=D.CREDIT_LIMIT
748+
LEFT JOIN
749+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( BEFORE_DUE_7*EXCHANGE_RATE ) AS BEFORE_DUE_7_MCL
750+
FROM `t2`
751+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS F ON A.CLIENT_NUMBER=F.CLIENT_NUMBER AND
752+
A.DIVISION=F.DIVISION AND A.RECEIVABLE_GROUP=F.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=F.CREDIT_LIMIT
753+
LEFT JOIN
754+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( BEFORE_DUE_7*EXCHANGE_RATE ) AS BEFORE_DUE_7_MFS
755+
FROM `t2`
756+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS G ON A.CLIENT_NUMBER=G.CLIENT_NUMBER AND
757+
A.DIVISION=G.DIVISION AND A.RECEIVABLE_GROUP=G.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=G.CREDIT_LIMIT
758+
LEFT JOIN
759+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( BEFORE_DUE_7*EXCHANGE_RATE ) AS BEFORE_DUE_7_MIS
760+
FROM `t2`
761+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS H ON A.CLIENT_NUMBER=H.CLIENT_NUMBER AND
762+
A.DIVISION=H.DIVISION AND A.RECEIVABLE_GROUP=H.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=H.CREDIT_LIMIT
763+
LEFT JOIN
764+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER1*EXCHANGE_RATE ) AS PER1_MCL
765+
FROM `t2`
766+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS I ON A.CLIENT_NUMBER=I.CLIENT_NUMBER AND
767+
A.DIVISION=I.DIVISION AND A.RECEIVABLE_GROUP=I.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=I.CREDIT_LIMIT
768+
LEFT JOIN
769+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER1*EXCHANGE_RATE ) AS PER1_MFS
770+
FROM `t2`
771+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS J ON A.CLIENT_NUMBER=J.CLIENT_NUMBER AND
772+
A.DIVISION=J.DIVISION AND A.RECEIVABLE_GROUP=J.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=J.CREDIT_LIMIT
773+
LEFT JOIN
774+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER1*EXCHANGE_RATE ) AS PER1_MIS
775+
FROM `t2`
776+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS K ON A.CLIENT_NUMBER=K.CLIENT_NUMBER AND
777+
A.DIVISION=K.DIVISION AND A.RECEIVABLE_GROUP=K.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=K.CREDIT_LIMIT
778+
LEFT JOIN
779+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER2*EXCHANGE_RATE ) AS PER2_MCL
780+
FROM `t2`
781+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS L ON A.CLIENT_NUMBER=L.CLIENT_NUMBER AND
782+
A.DIVISION=L.DIVISION AND A.RECEIVABLE_GROUP=L.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=L.CREDIT_LIMIT
783+
LEFT JOIN
784+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER2*EXCHANGE_RATE ) AS PER2_MFS
785+
FROM `t2`
786+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS M ON A.CLIENT_NUMBER=M.CLIENT_NUMBER AND
787+
A.DIVISION=M.DIVISION AND A.RECEIVABLE_GROUP=M.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=M.CREDIT_LIMIT
788+
LEFT JOIN
789+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER2*EXCHANGE_RATE ) AS PER2_MIS
790+
FROM `t2`
791+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS N ON A.CLIENT_NUMBER=N.CLIENT_NUMBER AND
792+
A.DIVISION=N.DIVISION AND A.RECEIVABLE_GROUP=N.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=N.CREDIT_LIMIT
793+
LEFT JOIN
794+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER3*EXCHANGE_RATE ) AS PER3_MCL
795+
FROM `t2`
796+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS O ON A.CLIENT_NUMBER=O.CLIENT_NUMBER AND
797+
A.DIVISION=O.DIVISION AND A.RECEIVABLE_GROUP=O.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=O.CREDIT_LIMIT
798+
LEFT JOIN
799+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER3*EXCHANGE_RATE ) AS PER3_MFS
800+
FROM `t2`
801+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS P ON A.CLIENT_NUMBER=P.CLIENT_NUMBER AND
802+
A.DIVISION=P.DIVISION AND A.RECEIVABLE_GROUP=P.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=P.CREDIT_LIMIT
803+
LEFT JOIN
804+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER3*EXCHANGE_RATE ) AS PER3_MIS
805+
FROM `t2`
806+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS R ON A.CLIENT_NUMBER=R.CLIENT_NUMBER AND
807+
A.DIVISION=R.DIVISION AND A.RECEIVABLE_GROUP=R.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=R.CREDIT_LIMIT
808+
LEFT JOIN
809+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER4*EXCHANGE_RATE ) AS PER4_MCL
810+
FROM `t2`
811+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS S ON A.CLIENT_NUMBER=S.CLIENT_NUMBER AND
812+
A.DIVISION=S.DIVISION AND A.RECEIVABLE_GROUP=S.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=S.CREDIT_LIMIT
813+
LEFT JOIN
814+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER4*EXCHANGE_RATE ) AS PER4_MFS
815+
FROM `t2`
816+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS T ON A.CLIENT_NUMBER=T.CLIENT_NUMBER AND
817+
A.DIVISION=T.DIVISION AND A.RECEIVABLE_GROUP=T.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=T.CREDIT_LIMIT
818+
LEFT JOIN
819+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER4*EXCHANGE_RATE ) AS PER4_MIS
820+
FROM `t2`
821+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS U ON A.CLIENT_NUMBER=U.CLIENT_NUMBER AND
822+
A.DIVISION=U.DIVISION AND A.RECEIVABLE_GROUP=U.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=U.CREDIT_LIMIT
823+
LEFT JOIN
824+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER5*EXCHANGE_RATE ) AS PER5_MCL
825+
FROM `t2`
826+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS V ON A.CLIENT_NUMBER=V.CLIENT_NUMBER AND
827+
A.DIVISION=V.DIVISION AND A.RECEIVABLE_GROUP=V.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=V.CREDIT_LIMIT
828+
LEFT JOIN
829+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER5*EXCHANGE_RATE ) AS PER5_MFS
830+
FROM `t2`
831+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS X ON A.CLIENT_NUMBER=X.CLIENT_NUMBER AND
832+
A.DIVISION=X.DIVISION AND A.RECEIVABLE_GROUP=X.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=X.CREDIT_LIMIT
833+
LEFT JOIN
834+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER5*EXCHANGE_RATE ) AS PER5_MIS
835+
FROM `t2`
836+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS Z ON A.CLIENT_NUMBER=Z.CLIENT_NUMBER AND
837+
A.DIVISION=Z.DIVISION AND A.RECEIVABLE_GROUP=Z.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=Z.CREDIT_LIMIT
838+
LEFT JOIN
839+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER6*EXCHANGE_RATE ) AS PER6_MCL
840+
FROM `t2`
841+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS Q ON A.CLIENT_NUMBER=Q.CLIENT_NUMBER AND
842+
A.DIVISION=Q.DIVISION AND A.RECEIVABLE_GROUP=Q.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=Q.CREDIT_LIMIT
843+
LEFT JOIN
844+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER6*EXCHANGE_RATE ) AS PER6_MFS
845+
FROM `t2`
846+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS Y ON A.CLIENT_NUMBER=Y.CLIENT_NUMBER AND
847+
A.DIVISION=Y.DIVISION AND A.RECEIVABLE_GROUP=Y.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=Y.CREDIT_LIMIT
848+
LEFT JOIN
849+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER6*EXCHANGE_RATE ) AS PER6_MIS
850+
FROM `t2`
851+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS W ON A.CLIENT_NUMBER=W.CLIENT_NUMBER AND
852+
A.DIVISION=W.DIVISION AND A.RECEIVABLE_GROUP=W.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=W.CREDIT_LIMIT
853+
LEFT JOIN
854+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER7*EXCHANGE_RATE ) AS PER7_MCL
855+
FROM `t2`
856+
WHERE REF IS NULL AND DIVISION="MCL" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS A1 ON A.CLIENT_NUMBER=A1.CLIENT_NUMBER AND
857+
A.DIVISION=A1.DIVISION AND A.RECEIVABLE_GROUP=A1.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=A1.CREDIT_LIMIT
858+
LEFT JOIN
859+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER7*EXCHANGE_RATE ) AS PER7_MFS
860+
FROM `t2`
861+
WHERE REF IS NULL AND DIVISION="MFS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS B1 ON A.CLIENT_NUMBER=B1.CLIENT_NUMBER AND
862+
A.DIVISION=B1.DIVISION AND A.RECEIVABLE_GROUP=B1.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=B1.CREDIT_LIMIT
863+
LEFT JOIN
864+
(SELECT RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT,SUM( PER7*EXCHANGE_RATE ) AS PER7_MIS
865+
FROM `t2`
866+
WHERE REF IS NULL AND DIVISION="MIS" GROUP BY RECEIVABLE_GROUP,DIVISION,CLIENT_NUMBER,CREDIT_LIMIT) AS C1 ON A.CLIENT_NUMBER=C1.CLIENT_NUMBER AND
867+
A.DIVISION=C1.DIVISION AND A.RECEIVABLE_GROUP=C1.RECEIVABLE_GROUP AND A.CREDIT_LIMIT=C1.CREDIT_LIMIT
868+
ORDER BY TOTAL DESC;
869+
id select_type table type possible_keys key key_len ref rows Extra
870+
1 PRIMARY <derived2> system NULL NULL NULL NULL 0 const row not found
871+
1 PRIMARY <derived3> system NULL NULL NULL NULL 0 const row not found
872+
1 PRIMARY <derived4> system NULL NULL NULL NULL 0 const row not found
873+
1 PRIMARY <derived5> system NULL NULL NULL NULL 0 const row not found
874+
1 PRIMARY <derived6> system NULL NULL NULL NULL 0 const row not found
875+
1 PRIMARY <derived7> system NULL NULL NULL NULL 0 const row not found
876+
1 PRIMARY <derived8> system NULL NULL NULL NULL 0 const row not found
877+
1 PRIMARY <derived9> system NULL NULL NULL NULL 0 const row not found
878+
1 PRIMARY <derived10> system NULL NULL NULL NULL 0 const row not found
879+
1 PRIMARY <derived11> system NULL NULL NULL NULL 0 const row not found
880+
1 PRIMARY <derived12> system NULL NULL NULL NULL 0 const row not found
881+
1 PRIMARY <derived13> system NULL NULL NULL NULL 0 const row not found
882+
1 PRIMARY <derived14> system NULL NULL NULL NULL 0 const row not found
883+
1 PRIMARY <derived15> system NULL NULL NULL NULL 0 const row not found
884+
1 PRIMARY <derived16> system NULL NULL NULL NULL 0 const row not found
885+
1 PRIMARY <derived17> system NULL NULL NULL NULL 0 const row not found
886+
1 PRIMARY <derived18> system NULL NULL NULL NULL 0 const row not found
887+
1 PRIMARY <derived19> system NULL NULL NULL NULL 0 const row not found
888+
1 PRIMARY <derived20> system NULL NULL NULL NULL 0 const row not found
889+
1 PRIMARY <derived21> system NULL NULL NULL NULL 0 const row not found
890+
1 PRIMARY <derived22> system NULL NULL NULL NULL 0 const row not found
891+
1 PRIMARY <derived23> system NULL NULL NULL NULL 0 const row not found
892+
1 PRIMARY <derived24> system NULL NULL NULL NULL 0 const row not found
893+
1 PRIMARY <derived25> system NULL NULL NULL NULL 0 const row not found
894+
1 PRIMARY <derived26> system NULL NULL NULL NULL 0 const row not found
895+
1 PRIMARY <derived27> system NULL NULL NULL NULL 0 const row not found
896+
1 PRIMARY <derived28> system NULL NULL NULL NULL 0 const row not found
897+
1 PRIMARY <derived29> system NULL NULL NULL NULL 0 const row not found
898+
29 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
899+
28 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
900+
27 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
901+
26 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
902+
25 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
903+
24 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
904+
23 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
905+
22 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
906+
21 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
907+
20 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
908+
19 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
909+
18 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
910+
17 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
911+
16 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
912+
15 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
913+
14 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
914+
13 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
915+
12 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
916+
11 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
917+
10 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
918+
9 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
919+
8 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
920+
7 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
921+
6 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
922+
5 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
923+
4 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
924+
3 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
925+
2 DERIVED NULL NULL NULL NULL NULL NULL NULL no matching row in const table
926+
DROP TABLES t1,t2;

0 commit comments

Comments
 (0)