Raziel-Chan

NeedHelpSqlMakeTextEvenly

Apr 16th, 2021 (edited)
275
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 3.94 KB | None | 0 0
  1. SET serverout ON format WORD_WRAPPED;
  2.  
  3.  
  4.  
  5. CREATE OR REPLACE PROCEDURE imprimeFacture IS
  6.  
  7.         CURSOR c_facture IS
  8.     SELECT
  9.         customer.contact AS c_contact,
  10.         customer.address AS c_address,
  11.         customer.city AS c_city,
  12.         customer.state AS C_state,
  13.         customer.zip AS c_zip,
  14.         customer.phone AS c_phone,
  15.         salesman.nom AS s_nom,
  16.         salesman.address AS s_address,
  17.         salesman.city AS s_city,
  18.         salesman.state AS s_state,
  19.         salesman.zip AS s_zip,
  20.         salesman.phone AS s_phone,
  21.         invoices.ino AS i_ino,
  22.         invoices.idate AS i_date,
  23.         detail.qty AS d_qty,
  24.         parts.descript AS p_description,
  25.         detail.price AS d_prix,
  26.         detail.ltotal AS d_prixTotal,
  27.         (
  28.             SELECT
  29.                 ROUND(SUM(detail.ltotal), 2)
  30.             FROM
  31.                 detail
  32.             WHERE
  33.                 detail.ino = 1054
  34.         )  AS totalfacture,
  35.         (
  36.             SELECT
  37.                 ROUND(SUM(detail.ltotal * 0.15), 2)
  38.             FROM
  39.                 detail
  40.             WHERE
  41.                 detail.ino = 1054
  42.         )  AS taxe,
  43.         (
  44.             SELECT
  45.                 ROUND(SUM(detail.ltotal * 0.15 + detail.ltotal), 2)
  46.             FROM
  47.                 detail
  48.             WHERE
  49.                 detail.ino = 1054
  50.         )  AS totalavectaxe
  51.     FROM
  52.              invoices
  53.         JOIN detail ON detail.ino = invoices.ino
  54.         JOIN parts ON parts.pno = detail.pno
  55.         JOIN customer ON customer.cno = invoices.cno
  56.         JOIN salesman ON salesman.salesman = invoices.salesman
  57.     WHERE
  58.         invoices.ino = 1055;
  59.        rec_facture c_facture%ROWTYPE;
  60.        fictifAvantBoucle NUMBER := 0;
  61. BEGIN
  62.     OPEN c_facture;
  63.    
  64.     LOOP
  65.         FETCH c_facture INTO rec_facture;
  66.         EXIT WHEN c_facture%notfound;
  67.        
  68.         IF fictifAvantBoucle = 0 THEN
  69.             DBMS_OUTPUT.put_line('Facture numéro: ' || rec_facture.i_ino || CHR(10) || 'Date de facturation (Y/M/D): ' || rec_facture.i_date --section Facture
  70.             || CHR(10) || CHR(10) || 'Vendu par ' || CHR(10) || rec_facture.s_nom || CHR(10) || 'Téléphone: ' || rec_facture.s_phone || CHR(10) --section vendeur
  71.             || 'Address: ' || rec_facture.s_address || CHR(10)
  72.             || 'Ville: ' || rec_facture.s_city || CHR(10) || 'État: ' || rec_facture.s_state || CHR(10) || 'ZIP: ' || rec_facture.s_zip
  73.             || CHR(10) || CHR(10) || 'Facturé à ' || CHR(10) || rec_facture.c_contact || CHR(10) || 'Téléphone: ' || rec_facture.c_phone || CHR(10) --section client
  74.             || 'Address: ' || rec_facture.c_address
  75.             || CHR(10) || 'Ville: ' || rec_facture.c_city || CHR(10) || 'État: ' || rec_facture.c_state || CHR(10) || 'ZIP: ' || rec_facture.c_zip || CHR(10)
  76.             || CHR(10) || '---------------------------------------------------------------------------------------------------------------------------' --section facture Article
  77.             || CHR(10) || 'Qty' || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || 'Article' || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9)
  78.             || 'Prix unitaire' || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || 'Montant total' || CHR(10)
  79.             || '---------------------------------------------------------------------------------------------------------------------------');          
  80.             fictifAvantBoucle := fictifAvantBoucle + 1;
  81.         END IF;
  82.         DBMS_OUTPUT.put_line(rec_facture.d_qty || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || rec_facture.p_description || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9)
  83.         || rec_facture.d_prix || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || CHR(9) || rec_facture.d_prixTotal);  
  84.     END LOOP;
  85.      
  86. EXCEPTION
  87.     WHEN NO_DATA_FOUND THEN
  88.     DBMS_OUTPUT.put_line('no data found');    
  89. END;
  90. /
  91.  
  92. BEGIN
  93.    imprimeFacture();
  94. END;
  95. /
Add Comment
Please, Sign In to add comment