#!/bin/bash
#
# $Id: account,v 1.2 2002/03/18 22:47:35 syatskevich Exp $
#
#  
#

#  
if [ "x$PSQL" = "x" -o "x$ACC_INPUT" = "x" -o "x$ACC_OUTPUT" = "x" ]; then
	echo "   (PSQL, ACC_INPUT  ACC_OUTPUT).  $0 "
	exit 1
fi

#    
if [ "x$FILTER" != "x" ]; then
	WHERE_FILTER="WHERE ($FILTER)"
	AND_FILTER="AND ($FILTER)"
fi

if [ "x$KB" = "x" ]; then
	KB=1
fi

QUERY="
SELECT
	source AS network,
	bytes  AS get_bytes, 0 AS post_bytes

FROM account_log WHERE ($ACC_INPUT) $AND_FILTER

UNION ALL

SELECT
	destination AS network,
	0           AS get_bytes, bytes AS post_bytes

FROM account_log WHERE ($ACC_OUTPUT) $AND_FILTER"

QUERY="
SELECT
	name                            AS \"\",
	ROUND (SUM (get_bytes)/$KB, 0)  AS \"IN\",
	ROUND (SUM (post_bytes)/$KB, 0) AS \"OUT\"

FROM ($QUERY) subselect, names
WHERE network = data
GROUP BY name

UNION ALL

SELECT
	network                         AS \"\",
	ROUND (SUM (get_bytes)/$KB, 0)  AS \"IN\",
	ROUND (SUM (post_bytes)/$KB, 0) AS \"OUT\"

FROM ($QUERY) subselect
WHERE network NOT IN (SELECT data FROM names)
GROUP BY network

ORDER BY \"\""

echo "**************************************************************"
echo "*  "
echo "*"
echo "*  :"
echo "*     = $KB"
echo "**************************************************************"
$PSQL -c "$QUERY"
