отформатировать многостольный SQL-запрос в PL / SQL - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть многотабличный SQL-запрос (ниже), который работает для получения нужного мне ответа, однако мне нужно кодировать тот же запрос в анонимный блок PL / SQL.Я пробовал несколько способов, но не получил аналогичный действительный вывод.Может кто-нибудь сказать мне, как бы вы справились с этим (или просто несколько указаний о том, как лучше действовать)Спасибо!

SELECT * FROM
(SELECT zip, count(purchase) as total_sales_in_zip
FROM sales s 
  JOIN items i 
    ON s.sale_id = i.sale_id  
  JOIN customers c 
    ON s.cust_id = c.cust_id
GROUP BY zip
ORDER BY total_sales_in_zip DESC)
WHERE ROWNUM <= 1;

Результат на выходе:

ZIP     TOTAL_SALES_IN_ZIP                                                             
-----   -------------------
48864                    38

1 Ответ

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

Хотя ваш запрос выглядит бессмысленно.Так как это простой запрос соединения без ограничений и дополнительных сложных фильтров для работы.Если вы просто добавите BEGIN в presql и END в postsql, это будет действительный анонимный блок Pl / sql.

 DECLARE
    v_zip Sales.zip%TYPE :=&v_zip;
    v_total_sales_in_zip varchar2(200);
 BEGIN

    SELECT v_zip, count(purchase) 
        as 
       total_sales_in_zip  into 
        v_total_sales_in_zip
      FROM sales s 
      JOIN items i 
       ON s.sale_id = i.sale_id  
     JOIN customers c 
      ON s.cust_id = c.cust_id 
       GROUP BY v_zip
      ORDER BY total_sales_in_zip DESC)
      WHERE ROWNUM <= 1;

    dbms_output.putline("ZIP CODE"|| v_zip  ||"Total Sales in Zip : "|| v_total_sales_in_zip);
 END;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...