Vraag : SQL Vraag voor tellingsfunctie op veelvoudige lijsten

Hello deskundigen - de behoefte van I om een SQL vraag tegen een Gegevensbestand van Oracle te bouwen (twee lijsten) dat het volgende zou doen:


- telt het aantal sucessful klappen (authentificatiesucces) aan een bepaalde toepassing voor elke dag en gesorteerd door Afdeling, Departmentcode, en dag van month.

dusdanig dat de output van de vraag als kijkt: de code

Department Dag PoortApp1 App2

Marketing 36 yy-MM.-DD 134 54 89
Finance 16 yy-MM.-DD 3 5 3
Development 12 yy-MM.-DD 3 76 0


There is twee lijsten van belang één die de controleinformatie (controle) en andere bevat die de afdelingsinformatie bevat (gebruiker).

Here is de informatie van de controlelijst:

LEIDT VAN DE LIJST VAN DE CONTROLE
(„EVENTDATEANDTIME“ TIMESTAMP (6),
„SERVERID“ NVARCHAR2 (255),
„EVENTNAME“ NVARCHAR2 (255),
„URL“ NVARCHAR2 (255),
„VERRICHTING“ NVARCHAR2 (255),
„TARGETUSERDN“ NVARCHAR2 (255),
„IPADDRESS“ NVARCHAR2 (255),
„USERPROFILEATTRS“ NVARCHAR2 (255),
)


THE- STEEKPROEF TOT GEGEVENS VAN CONTROLELIJST KIJKT ALS DIT:


EVENTDATEANDTIME = 18-augustus-10 07.33.01.000 000000 PM
SERVERID = myserver1
EVENTNAME = AUTHN_SUCCESS
URL = xyz.mydomain.com %2Fportal%2Flang%2Fen-us%2default.aspx
OPERATION = KRIJGT
TARGETUSERDN = uid=markuser1, ou=people, o=mycomany, KRIJGT c=com
IPADDRESS = 10.8.146.134
USERPROFILEATTRS = uid=markuser1

EVENTDATEANDTIME = 19-augustus-10 05.30.09.000 000000 PM
SERVERID = myserver2
EVENTNAME = AUTHN_SUCCESS
URL = xyz.mydomain.com %2FAPP1%2Flang%2Fen-us%2default.aspx
OPERATION =
TARGETUSERDN = uid=finuser1, ou=people, o=mycomany, c=com
IPADDRESS = 10.8.146.130
USERPROFILEATTRS = uid=finuser1


Here de de lijstinformatie van de steekproefgebruiker:

CREATE- LIJST user
(50) niet ongeldige user-id varchar2 (,
department_name varchar2 (50) niet ongeldige,
department_code aantal (6) niet ongeldig,
)

The- steekproefgegevens van gebruikerslijst als dit:

userid = markuser1
Department_name = Marketing
Department_code = 36

userid = finuser1
Department_name = Finance
Department_code = 12

Thanks,

Antwoord : SQL Vraag voor tellingsfunctie op veelvoudige lijsten

probeer dit:

selecteer
department_name,
department_code, dag,
som (succ_por_count) Portaal,
som (succ_app1_count) App1,
som (succ_app2_count) App2
van (
selecteer u.department_name, u.department_code, to_char (eventdateandtime, „yy-mm-dd“) Dag,
geval wanneer EVENTNAME = „AUTHN_SUCCESS“ en url als „%portal%“ toen 1 anders 0 succ_por_count beëindigen,
geval wanneer EVENTNAME = „AUTHN_SUCCESS“ en url als „%APP1%“ toen 1 0 anders succ_app1_count beëindigen,
geval wanneer EVENTNAME = „AUTHN_SUCCESS“ en url als „%APP2%“ toen 1 0 anders succ_app2_count beëindigen
van user_tblu, audit_tbl a
waar u.userid = substr (USERPROFILEATTRS, 5)
orde door u.department_name, u.department_code, to_date (to_char (eventdateandtime, „yy-mm-dd“), „yy-mm-dd“)
)
groep door department_name, department_code, dag

Andere oplossingen  
 
programming4us programming4us