Microsoft
Software
Hardware
Network
Frage : Notwendigkeitshilfe in der Aktualisierung einer SQL-Frage, um mehrfache Daten von einer signle Spalte zurückzuholen
Hallo - wir haben eine SQL-Frage, die gegen zwei Tabellen DB läuft und holen Daten für uns zurück. Die vorhandene Frage zählt die Zahl sucessful Schlägen (Authentisierungserfolg) zu einer bestimmten Anwendung für jeden Tag und bis zum Department, Departmentcode und Tag des Monats sortiert.
Now, das wir die selben mit nur einer Tabelle erzielen müssen. ein der Spalte des Interesses enthält mehrfachen Datenwert für uns d.h. USERPROFILEATTRS = uid=markuser1 uid=markuser1 departmentname=Marketing
Here ist die Bilanztabelleninformationen:
VERURSACHEN TABELLE AUDIT
(„EVENTDATEANDTIME“ ZEITSTEMPEL (6),
„SERVERID“ NVARCHAR2 (255),
„EVENTNAME“ NVARCHAR2 (255),
„URL“ NVARCHAR2 (255),
„BETRIEB“ NVARCHAR2 (255),
„TARGETUSERDN“ NVARCHAR2 (255),
„IP ADDRESS“ NVARCHAR2 (255),
„USERPROFILEATTRS“ NVARCHAR2 (255),
)
The Beispieldaten von der Bilanztabelle aussieht wie dieses:
EVENTDATEANDTIME = 18-AUG-10 07.33.01.000 000000 P.M.
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 uid=markuser1, das departmentcode=36
Note departmentname=Marketing ist: die Attribute seprated mit einem Raum seperator in der Datenbank column.
Can, das, wir die SQL-Frage jetzt änderten, damit sie Daten von einer Tabelle zurückholt und den gleichen Ausgang produzieren?
The bestehende SQL Frage ist unten:
select
department_name,
department_code, Tag,
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 ")
Tag,
case, wenn EVENTNAME = „AUTHN_SUCCESS“ und URL „%portal%“ dann 1 sonst 0 Ende succ_por_count mögen,
case, wenn EVENTNAME = „AUTHN_SUCCESS“ und URL „%APP1%“ dann 1 sonst 0 Ende succ_app1_count mögen,
case, wenn EVENTNAME = „AUTHN_SUCCESS“ und URL „%APP2%“ dann 1 sonst 0 Ende succ_app2_count
from user_tbl u mögen, audit_tbl a
where u.userid = substr (USERPROFILEATTRS, 5)
order durch u.department_name, u.department_code, das to_date (to_char (eventdatea
ndtime, „yy
-mm-dd "), „
yy-mm-dd ")
) ist
group durch department_name, department_code, day
Also, es möglich, Daten für den letzten Monat nur zurückzuholen nur wie entgegensetzen allen Monaten mit dieser Frage d.h. Wir müssen diese Frage am ersten Tag jedes Monats für den vorhergehenden Monat laufen lassen d.h., wenn wir dieses laufen lassen, am 1. September 2010 dann, das es nur Erscheinenaufzeichnungen für August 2010 month.
Note sollte: nav_kum_v half mir, die erste Frage aufzubauen und ich bin hoffend er kann dieses aufheben außerdem.
Thanks,
Antwort : Notwendigkeitshilfe in der Aktualisierung einer SQL-Frage, um mehrfache Daten von einer signle Spalte zurückzuholen
wenn Sie dieses zu jeder Zeit laufen lassen, überprüft es sysdate (z.B. ist heute 25. August - 2010) und die Frage holt Daten für den Monat july-2010. Mich informieren, wenn Sie irgendwelche Änderungen benötigen.
Dieses versuchen:
vorwählen
department_name,
department_code,
day1,
Summe (succ_por_count) Portal,
Summe (succ_app1_count) App1,
Summe (succ_app2_count) App2
von (
auserwählt
substr (USERPROFILEATTRS, instr
(userprofileattrs
, „=“, 1.2) +1
,
instr (substr (USERPROFILEATTRS
, instr (
userprofileattrs
, „=“
, 1.2) +1), '
') - 1) department_name,
substr (userprofileattrs, instr
(userprofileattrs
, „=“, - 1) +1)
department_code,
to_char (eventdateandtime, „
JJ-MillimeterdD ")
Day1,
Fall, wenn EVENTNAME = „AUTHN_SUCCESS“ und URL „%portal%“ dann 1 sonst 0 Ende succ_por_count mögen,
Fall, wenn EVENTNAME = „AUTHN_SUCCESS“ und URL „%APP1%“ dann 1 sonst 0 Ende succ_app1_count mögen,
Fall, wenn EVENTNAME = „AUTHN_SUCCESS“ und URL „%APP2%“ dann 1 sonst 0 Ende succ_app2_count mögen
vom audit_tbl
wo to_char (eventdateandtime, „
yyyymm ") = to_char (add_months (trunc (sysdate
), - 1
), „yyyymm ")
Auftrag durch department_name, department_code, to_date (to_char (eventdateandtime
, „
JJ-MillimeterdD "), „
JJ-MillimeterdD ")
)
Gruppe durch department_name, department_code, day1;
Weitere Lösungen
Wort-Presse, die Frage bewirtet
asp.net: Mein Problem ist, benutze ich einen ajax Ergänzung Kalender, um BeginDate u. EndDate Werte einzutragen
Silverlight 4 UI Ereignisse
wie kann ich irgendeine Bildentschließung online ändern und sie zum lokalen PC dann innen sparen??
ZFS Sicherungshilfe Ubuntu 10.0.4 LTS
Form-Frage für Kristallreports
Betreffend INOTES in Lotos 8.5
Mühen, die ZWISCHEN Logik erhalten zu arbeiten
Spannungs-Sensor ermittelte einen Ausfall auf Bediener DELL-PowerEdge 2650
broadcom NIC teaming