After trying some combination with other queries finally i got the break
through...below query gives the output for All clients utilization in GB for
specified time window...this may helpful for others

:List storage used by client and pool after specified time window
*Enter Start time in YYYY-MM-DD HH:MM:SS format:
*Enter End time in YYYY-MM-DD HH:MM:SS format:
SELECT Client.Name AS Client, Pool.Name as Pool,
   sum(Job.JobFiles) as Files, sum(Job.JobBytes)/(1024*1024*1024) as
TotalSizeGb
 FROM Client, Job, Pool
 WHERE Job.ClientID = Client.ClientID and Job.PoolID = Pool.PoolID
 AND JobStatus='T'
 AND Job.StartTime >= '%1'
 AND Job.StartTime <= '%2'
 GROUP by Client.ClientID
 ORDER by Client.Name;

Cheers,

vishal



On Fri, Dec 18, 2009 at 4:31 PM, Dan Langille <d...@langille.org> wrote:

> vishal veerkar wrote:
>
>> Hi All,
>>
>> I would like to calculate the last 7days total backup utilization of my
>> clients. I presently using 2.2.8 with Mysql in catalog DB. I was trying to
>> tweak one query from query.sql as below. Frankly speaking i am not a DB
>> expert and just want to get the job done.
>>
>> :List all backups for a Client after a specified time and size
>> *Enter Client Name:
>> *Enter time in YYYY-MM-DD HH:MM:SS format:
>> SELECT DISTINCT Job.JobId,Client.Name as
>> Client,Level,StartTime,JobFiles,*sum(JobBytes)* as Totalsize,VolumeName
>>  FROM Client,Job,JobMedia,Media
>>  WHERE Client.Name='%1'
>>  AND Client.ClientId=Job.ClientId
>>  AND JobStatus='T'
>>  AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId
>>  AND Job.StartTime >= '%2'
>> * GROUP BY Client.Name;*
>>
>> Actually it gives the out put but the size does not match the actual size.
>>
>
> MySQL silently does unexpected things.  PostgreSQL does this:
>
>
> SELECT DISTINCT Job.JobId,Client.Name as
> Client,Level,StartTime,JobFiles,sum(JobBytes) as Totalsize,VolumeName
>  FROM Client,Job,JobMedia,Media
>  WHERE Client.Name='polo-fd'
>
>  AND Client.ClientId=Job.ClientId
>  AND JobStatus='T'
>  AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId
>  AND Job.StartTime >= '2009-12-01'
>  GROUP BY Client.Name;
>
> ERROR:  column "job.jobid" must appear in the GROUP BY clause or be used in
> an aggregate function
>
>
> It expected standard SQL.
>
> So we change to Standard SQL by removing the columns we are not grouping
>  on.
>
> SELECT Client.Name as Client, sum(JobBytes) as Totalsize
>
>  FROM Client,Job,JobMedia,Media
>  WHERE Client.Name='polo-fd'
>
>  AND Client.ClientId=Job.ClientId
>  AND JobStatus='T'
>  AND JobMedia.JobId=Job.JobId AND JobMedia.MediaId=Media.MediaId
>  AND Job.StartTime >= '2009-12-01'
>  GROUP BY Client.Name;
>  client  |  totalsize
> ---------+-------------
>  polo-fd | 11971658478
> (1 row)
>
>
>


-- 
With regards,

Vishal Veerkar
------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Bacula-users mailing list
Bacula-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bacula-users

Reply via email to