1. Get rid of all advertisements and get unlimited access to documents by upgrading to Premium Membership. Upgrade to Premium Now and also get a Premium Badge!

COMPUTE problem in SQLPLUS

Discussion in 'SQL PL/SQL' started by svidotto, Sep 10, 2013.

  1. svidotto

    svidotto Active Member

    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    55
    hi!
    i'm a beginner in databases and i'm actually learning how to make reports in sqlplus.
    i have a "strange" error in my report.
    the label of the COMPUTE function doesn't appear in the first column even if i'm not computing the first column (the compute functions is a COUNT of the second and third column).
    i have the same error also when i tried to compute only the fourth column.
    the label appears only if i make a dummy first column, but in the manual it's written that you have to do it only when you compute the first column.
    where can be the mistake?
    is that a way to force the label to be in the first column?

    THX very much! :D
     
  2. dariyoosh

    dariyoosh Forum Advisor

    Messages:
    118
    Likes Received:
    19
    Trophy Points:
    260
    Hello there,

    Well, it's difficult to say what goes wrong in your script as you don't show us your script.

    As a result, I'm just going to quote a couple of recommendations in the online documentation:
    http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve014.htm#BACEDBGF
    So here is an example that counts the number of employees for each job category (job_id)

    Code (SQL):
    SQL> COMPUTE COUNT OF employee_id ON job_id;
    SQL> BREAK ON job_id SKIP 1;
    SQL> SET PAGESIZE 1000
    SQL> SET LINESIZE 1000
     
    Now let's run the query
    Code (SQL):

    SELECT    t1.job_id,
              t1.department_id,
              t1.employee_id,
              t1.first_name,
              t1.salary
    FROM      hr.employees t1;
     
    Which gives you the following output
    Code (Text):

    JOB_ID     DEPARTMENT_ID EMPLOYEE_ID FIRST_NAME           SALARY
    ---------- ------------- ----------- -------------------- ----------
    AD_PRES           90     100 Steven            24000
    **********       -----------
    count                  1

    AD_VP             90     101 Neena             17000
                  90     102 Lex               17000
    **********       -----------
    count                  2

    IT_PROG           60     103 Alexander          9000
                  60     104 Bruce          6000
                  60     105 David          4800
                  60     106 Valli          4800
                  60     107 Diana          4200
    **********       -----------
    count                  5

    FI_MGR           100     108 Nancy             12008
    **********       -----------
    count                  1

    FI_ACCOUNT       100     109 Daniel         9000
                 100     110 John           8200
                 100     111 Ismael         7700
                 100     112 Jose Manuel        7800
                 100     113 Luis           6900
    **********       -----------
    count                  5

    PU_MAN            30     114 Den               11000
    **********       -----------
    count                  1

    PU_CLERK          30     115 Alexander          3100
                  30     116 Shelli         2900
                  30     117 Sigal          2800
                  30     118 Guy            2600
                  30     119 Karen          2500
    **********       -----------
    count                  5

    ST_MAN            50     120 Matthew            8000
                  50     121 Adam           8200
                  50     122 Payam          7900
                  50     123 Shanta         6500
                  50     124 Kevin          5800
    **********       -----------
    count                  5

    ST_CLERK          50     125 Julia          3200
                  50     126 Irene          2700
                  50     127 James          2400
                  50     128 Steven         2200
                  50     129 Laura          3300
                  50     130 Mozhe          2800
                  50     131 James          2500
                  50     132 TJ             2100
                  50     133 Jason          3300
                  50     134 Michael            2900
                  50     135 Ki             2400
                  50     136 Hazel          2200
                  50     137 Renske         3600
                  50     138 Stephen            3200
                  50     139 John           2700
                  50     140 Joshua         2500
                  50     141 Trenna         3500
                  50     142 Curtis         3100
                  50     143 Randall            2600
                  50     144 Peter          2500
    **********       -----------
    count                 20

    SA_MAN            80     145 John              14000
                  80     146 Karen             13500
                  80     147 Alberto               12000
                  80     148 Gerald            11000
                  80     149 Eleni             10500
    **********       -----------
    count                  5

    SA_REP            80     150 Peter             10000
                  80     151 David          9500
                  80     152 Peter          9000
                  80     153 Christopher        8000
                  80     154 Nanette            7500
                  80     155 Oliver         7000
                  80     156 Janette               10000
                  80     157 Patrick            9500
                  80     158 Allan          9000
                  80     159 Lindsey            8000
                  80     160 Louise         7500
                  80     161 Sarath         7000
                  80     162 Clara             10500
                  80     163 Danielle           9500
                  80     164 Mattea         7200
                  80     165 David          6800
                  80     166 Sundar         6400
                  80     167 Amit           6200
                  80     168 Lisa              11500
                  80     169 Harrison              10000
                  80     170 Tayler         9600
                  80     171 William            7400
                  80     172 Elizabeth          7300
                  80     173 Sundita            6100
                  80     174 Ellen             11000
                  80     175 Alyssa         8800
                  80     176 Jonathon           8600
                  80     177 Jack           8400
                     178 Kimberely          7000
                  80     179 Charles            6200
    **********       -----------
    count                 30

    SH_CLERK          50     180 Winston            3200
                  50     181 Jean           3100
                  50     182 Martha         2500
                  50     183 Girard         2800
                  50     184 Nandita            4200
                  50     185 Alexis         4100
                  50     186 Julia          3400
                  50     187 Anthony            3000
                  50     188 Kelly          3800
                  50     189 Jennifer           3600
                  50     190 Timothy            2900
                  50     191 Randall            2500
                  50     192 Sarah          4000
                  50     193 Britney            3900
                  50     194 Samuel         3200
                  50     195 Vance          2800
                  50     196 Alana          3100
                  50     197 Kevin          3000
                  50     198 Donald         2600
                  50     199 Douglas            2600
    **********       -----------
    count                 20

    AD_ASST           10     200 Jennifer           4400
    **********       -----------
    count                  1

    MK_MAN            20     201 Michael               13000
    **********       -----------
    count                  1

    MK_REP            20     202 Pat            6000
    **********       -----------
    count                  1

    HR_REP            40     203 Susan          6500
    **********       -----------
    count                  1

    PR_REP            70     204 Hermann               10000
    **********       -----------
    count                  1

    AC_MGR           110     205 Shelley               12008
    **********       -----------
    count                  1

    AC_ACCOUNT       110     206 William            8300
    **********       -----------
    count                  1


    107 rows selected.

    SQL>
     
    Also not to forget as it is said in the documentation
     
  3. svidotto

    svidotto Active Member

    Messages:
    4
    Likes Received:
    0
    Trophy Points:
    55
    i think all the conditions you mentioned are ok in my script!
    here it is.

    Code (SQL):



    REPHEADER SKIP 2 LEFT 'User: ' SQL.USER RIGHT 'Datum: ' DATEVAR SKIP 1 -
    CENTER '******DRZAVE, MJESTA, PODUZECA I HOTELI******' SKIP 3

    SET PAGESIZE 9999
    SET LINESIZE 108
    SET UNDERLINE '-'

    BREAK ON DRZAVA SKIP 1 NODUP ON MJESTO ON PODUZECE ON REPORT

    COMPUTE COUNT LABEL 'GRAND TOTAL' OF MJESTO PODUZECE HOTEL ON REPORT

    COLUMN danas noprint NEW_VALUE DATEVAR
    COLUMN DRZAVA FORMAT A22 TRUNCATED HEADING 'DRZAVA'
    COLUMN MJESTO LIKE DRZAVA HEADING 'MJSTO'
    COLUMN PODUZECE LIKE DRZAVA HEADING 'PODUZECE'
    COLUMN HOTEL LIKE DRZAVA HEADING 'HOTEL'



    SELECT to_char(sysdate, 'dd.mm.yyyy') danas, drzave.naziv AS DRZAVA, mjesta.naziv AS MJESTO, poduzeca.naziv AS PODUZECE, hoteli.naziv AS HOTEL FROM
            ((drzave INNER JOIN poste ON drzave.id_drzave = poste.id_drzave
            INNER JOIN mjesta ON poste.id_poste = mjesta.id_mjesta)
            LEFT OUTER JOIN poduzeca ON mjesta.id_mjesta = poduzeca.id_mjesta)
            LEFT OUTER JOIN hoteli ON poduzeca.id_poduzeca = hoteli.id_poduzeca
    ORDER BY drzave.naziv, mjesta.naziv, poduzeca.naziv

    /