Как я могу вставить 2 новые строки извлечения из запроса в запросе - PullRequest
0 голосов
/ 15 февраля 2019

Я должен изменить сырье и разделить его, но я не понимаю, как это сделать.

SELECT A.QADAte, A.ProcessorType, A.ASDType ,A.Threshold, A.Accuracy, A.Accept, A.ItemsQty, C.Accuracy Accuracy01, C.Accept Accept01, C.ItemsQty ItemsQty01, D.Accuracy Accuracy07,
D.Accept Accept07, D.ItemsQty ItemsQty07, E.Accuracy Accuracy30, E.Accept Accept30, E.ItemsQty ItemsQty30
from `moonoia-bpo-run.asd.accuracies` A inner join
(SELECT ProcessorType, max(QADate) maxQADate FROM `moonoia-bpo-run.asd.accuracies` group by ProcessorType)
B ON A.QADate = B.maxQADate and A.ProcessorType = B.ProcessorType and A.SkipNulls = true and A.ASDType = '%' and A.Days=6
left join `moonoia-bpo-run.asd.accuracies` C ON C.QADate=DATE_ADD(A.QADate, INTERVAL -1 DAY) and C.ProcessorType = A.ProcessorType and C.ASDType = '%' and C.SkipNulls = true and C.Days=6
left join `moonoia-bpo-run.asd.accuracies` D ON D.QADate=DATE_ADD(A.QADate, INTERVAL -7 DAY) and D.ProcessorType = A.ProcessorType and D.ASDType = '%' and D.SkipNulls = true and D.Days=6
left join `moonoia-bpo-run.asd.accuracies` E ON E.QADate=DATE_ADD(A.QADate, INTERVAL -30 DAY) and E.ProcessorType = A.ProcessorType and E.ASDType = '%' and E.SkipNulls = true and E.Days=6 

И в результате получается

enter image description here

Я должен извлечь файл F06 и получить его в 2 различных файлах, где ASDType отличается от «%».Я должен хранить остальные данные, как они есть в таблице.

Пожалуйста, вы можете мне помочь?

1 Ответ

0 голосов
/ 15 февраля 2019

Вы также можете сделать это в таблице, но, поскольку вы используете запрос напрямую, лучше связать несколько запросов и получить набор результатов.

В той степени, насколько я понимаю, чтобы получить более безопасную строку, вам нужносоздайте еще один запрос и сделайте объединение для обоих запросов.Для второго запроса возьмите только F06 и ASDType <> '%' в качестве фильтра для проверки второго запроса. Я добавил его

SELECT A.QADAte, A.ProcessorType, A.ASDType ,A.Threshold, A.Accuracy, A.Accept, A.ItemsQty, C.Accuracy Accuracy01, C.Accept Accept01, C.ItemsQty ItemsQty01, D.Accuracy Accuracy07,
D.Accept Accept07, D.ItemsQty ItemsQty07, E.Accuracy Accuracy30, E.Accept Accept30, E.ItemsQty ItemsQty30
from `moonoia-bpo-run.asd.accuracies` A inner join
(SELECT ProcessorType, max(QADate) maxQADate FROM `moonoia-bpo-run.asd.accuracies` group by ProcessorType)
B ON A.QADate = B.maxQADate and A.ProcessorType = B.ProcessorType and A.SkipNulls = true and A.ASDType = '%' and A.Days=6
left join `moonoia-bpo-run.asd.accuracies` C ON C.QADate=DATE_ADD(A.QADate, INTERVAL -1 DAY) and C.ProcessorType = A.ProcessorType and C.ASDType = '%' and C.SkipNulls = true and C.Days=6
left join `moonoia-bpo-run.asd.accuracies` D ON D.QADate=DATE_ADD(A.QADate, INTERVAL -7 DAY) and D.ProcessorType = A.ProcessorType and D.ASDType = '%' and D.SkipNulls = true and D.Days=6
left join `moonoia-bpo-run.asd.accuracies` E ON E.QADate=DATE_ADD(A.QADate, INTERVAL -30 DAY) and E.ProcessorType = A.ProcessorType and E.ASDType = '%' and E.SkipNulls = true and E.Days=6

union

SELECT A.QADAte, A.ProcessorType, A.ASDType ,A.Threshold, A.Accuracy, A.Accept, A.ItemsQty, C.Accuracy Accuracy01, C.Accept Accept01, C.ItemsQty ItemsQty01, D.Accuracy Accuracy07,
D.Accept Accept07, D.ItemsQty ItemsQty07, E.Accuracy Accuracy30, E.Accept Accept30, E.ItemsQty ItemsQty30
from `moonoia-bpo-run.asd.accuracies` A inner join
(SELECT ProcessorType, max(QADate) maxQADate FROM `moonoia-bpo-run.asd.accuracies` group by ProcessorType)
B ON A.QADate = B.maxQADate and A.ProcessorType = B.ProcessorType and A.SkipNulls = true and A.ASDType = '%' and A.Days=6
left join `moonoia-bpo-run.asd.accuracies` C ON C.QADate=DATE_ADD(A.QADate, INTERVAL -1 DAY) and C.ProcessorType = A.ProcessorType and C.ASDType <> '%' and C.SkipNulls = true and C.Days=6 and B.ProcessorType = 'F06'
left join `moonoia-bpo-run.asd.accuracies` D ON D.QADate=DATE_ADD(A.QADate, INTERVAL -7 DAY) and D.ProcessorType = A.ProcessorType and D.ASDType = '%' and D.SkipNulls = true and D.Days=6
left join `moonoia-bpo-run.asd.accuracies` E ON E.QADate=DATE_ADD(A.QADate, INTERVAL -30 DAY) and E.ProcessorType = A.ProcessorType and E.ASDType = '%' and E.SkipNulls = true and E.Days=6
...