Microsoft
Software
Hardware
Network
Question : SQL Query for count function on multiple tables
Hello experts - I need to build a SQL query against an Oracle Database (two tables) that would do the following:
- count the number of sucessful hits (authentication success) to a particular application for each day and sorted by Department, Departmentcode, and day of the month.
such that output of the query looks like:
Department code Day Portal App1 App2
Marketting 36 YY-MM-DD 134 54 89
Finance 16 YY-MM-DD 3 5 3
Development 12 YY-MM-DD 3 76 0
There are two tables of interest one that contains the audit information (audit) and the other that contains the department information (user).
Here is the audit table information:
CREATE TABLE AUDIT
( "EVENTDATEANDTIME" TIMESTAMP (6),
"SERVERID" NVARCHAR2(255),
"EVENTNAME" NVARCHAR2(255),
"URL" NVARCHAR2(255),
"OPERATION" NVARCHAR2(255),
"TARGETUSERDN" NVARCHAR2(255),
"IPADDRESS" NVARCHAR2(255),
"USERPROFILEATTRS" NVARCHAR2(255),
)
The sample data from audit table looks like this:
EVENTDATEANDTIME = 18-AUG-10 07.33.01.000000000 PM
SERVERID = myserver1
EVENTNAME = AUTHN_SUCCESS
URL = xyz.mydomain.com%2Fportal%
2Flang%2Fe
n-us%2defa
ult.aspx
OPERATION = GET
TARGETUSERDN = uid=markuser1,ou=people,o=
mycomany,c
=com
IPADDRESS = 10.8.146.134
USERPROFILEATTRS = uid=markuser1
EVENTDATEANDTIME = 19-AUG-10 05.30.09.000000000 PM
SERVERID = myserver2
EVENTNAME = AUTHN_SUCCESS
URL = xyz.mydomain.com%2FAPP1%2F
lang%2Fen-
us%2defaul
t.aspx
OPERATION = GET
TARGETUSERDN = uid=finuser1,ou=people,o=m
ycomany,c=
com
IPADDRESS = 10.8.146.130
USERPROFILEATTRS = uid=finuser1
Here is the sample user table information:
CREATE TABLE user
( userid varchar2(50) not null,
department_name varchar2(50) not null,
department_code number(6) not null,
)
The sample data from user table looks like this:
userid = markuser1
Department_name = Marketting
Department_code = 36
userid = finuser1
Department_name = Finance
Department_code = 12
Thanks,
Answer : SQL Query for count function on multiple tables
try this :
select
department_name,
department_code, day,
sum(succ_por_count) Portal,
sum(succ_app1_count) App1,
sum(succ_app2_count) App2
from (
select u.department_name, u.department_code, to_char(eventdateandtime,'
yy-mm-dd')
Day,
case when EVENTNAME = 'AUTHN_SUCCESS' and url like '%portal%' then 1 else 0 end succ_por_count,
case when EVENTNAME = 'AUTHN_SUCCESS' and url like '%APP1%' then 1 else 0 end succ_app1_count,
case when EVENTNAME = 'AUTHN_SUCCESS' and url like '%APP2%' then 1 else 0 end succ_app2_count
from user_tbl u, audit_tbl a
where u.userid = substr(USERPROFILEATTRS,5)
order by u.department_name, u.department_code, to_date(to_char(eventdatea
ndtime,'yy
-mm-dd'),'
yy-mm-dd')
)
group by department_name, department_code, day
Random Solutions
C# 4.0 convert from 12h format to 24h format.
MS Access not connecting to Oracle11g using ODBC
imac osx 10.5 - Does not boot; cannot find harddrive. Getting a folder icon wid a question mark flashin at startup
Printing the details section in group footer
How can I convert a custom control that calls User32 and Shell32 to work on Mono?
how can i find all ILO boards on a network
Excel Date Time format conversion yyyy-mmm-dd hh:mm:ss to mm/dd/yyyy hh:mm:ss
VB .NET 2005 Combine Two Tables on Primary Key and Display in DataGridView
V2P (Windows 2008)
Setting up my first database driven web site