Need help over this Query
Hi, I need the Result set in the given below form.
Can any one please help me with this.
I am not able to get the 2nd most recent login date in the separate column.
Concerned Columns: Login date, login date2, login difference
Login date = Most recent login by the user
Login date 2= 2nd most recent login by the user
Login difference = difference between last 2 logins
Help!!
DECLARE @ownerid INT=304,@offset INT=330,@totalsec INT=86400
SELECT USERNAME, LOGIN_ID,EMAIL,DEPARTMENT,LOGIN_DATE, LOGOUT_DATE, IP_ADDRESS,MACHINE_NAME,TOTAL_LOGIN_TIME,LOGIN_NUMBER,
ROW_NUMBER() OVER (ORDER BY USERNAME, LOGIN_ID) AS ROWNUMBER
FROM
SELECT Usr.UserID [USERID], usr.UserName [USERNAME],usr.LoginID [LOGIN_ID],
usrcontact.Email [EMAIL],
UsrContact.Department [DEPARTMENT],
MAX(DateAdd(mi,@offset, UsrHis.LoginDate)) [LOGIN_DATE],
MAX(DateAdd(mi,@offset, UsrHis.LogoutDate)) [LOGOUT_DATE],
UsrHis.IPAddress [IP_ADDRESS],UsrHis.MachineName [MACHINE_NAME],
convert( NVARCHAR(50),(DATEDIFF(SECOND,UsrHis.LoginDate,UsrHis.LogoutDate))/@totalsec) + ' '+'Days'+ ' '+
convert( NVARCHAR(50),((DATEDIFF(SECOND,UsrHis.LoginDate,UsrHis.LogoutDate))%@totalsec)/3600) + ' '+'hours'+ ' '+
convert( NVARCHAR(50),(((DATEDIFF(SECOND,UsrHis.LoginDate,UsrHis.LogoutDate))%@totalsec)%3600/60)) + ' '+'Minutes'+ ' '+
convert( NVARCHAR(50),(((DATEDIFF(SECOND,UsrHis.LoginDate,UsrHis.LogoutDate))%@totalsec)%3600%60)) + ' '+'Seconds'
[TOTAL_LOGIN_TIME],
ROW_NUMBER() OVER (PARTITION BY USR.USERID ORDER BY USRHIS.LOGINDATE) LOGIN_NUMBER
FROM Az_User Usr Inner Join LoginHistory UsrHis
ON UsrHis.OwnerID=Usr.AppOwnerID
and
Usr.UserID = UsrHis.UserID
inner join UserContact UsrContact
ON UsrContact.CompanyID = Usr.AppOwnerID
and UsrContact.UserID = Usr.UserID
WHERE usr.AppOwnerID = @ownerid
GROUP BY Usr.UserID,Usr.UserName , usrcontact.Email , UsrHis.LoginDate,usr.LoginID,UsrContact.Department,
UsrHis.LogoutDate,UsrHis.IPAddress,UsrHis.MachineName,
Dateadd(D, Datediff(D, 0, Dateadd(mi, @offset, UsrHis.LoginDate)), 0)
) AS TEMP
WHERE TEMP.LOGIN_NUMBER <=2
Hi here is the Data type of the columns i am selecting.. and the result i am getting.
But here the total_login_time is wrong. .
I need difference between last 2 logins not length of the session.
It is unclear what you are trying to achieve...
DATEDIFF(d,Logindate,Logindate2)
AS [Login difference]
FROM.....
Best Regards,Uri Dimant SQL Server MVP,
http://sqlblog.com/blogs/uri_dimant/
MS SQL optimization: MS SQL Development and Optimization
MS SQL Consulting:
Large scale of database and data cleansing
Remote DBA Services:
Improves MS SQL Database Performance
SQL Server Integration Services:
Business Intelligence
Similar Messages
-
Please need help with this query
Hi !
Please need help with this query:
Needs to show (in cases of more than 1 loan offer) the latest create_date one time.
Meaning, In cases the USER_ID, LOAN_ID, CREATE_DATE are the same need to show only the latest, Thanks!!!
select distinct a.id,
create_date,
a.loanid,
a.rate,
a.pays,
a.gracetime,
a.emailtosend,
d.first_name,
d.last_name,
a.user_id
from CLAL_LOANCALC_DET a,
loan_Calculator b,
bv_user_profile c,
bv_mr_user_profile d
where b.loanid = a.loanid
and c.NET_USER_NO = a.resp_id
and d.user_id = c.user_id
and a.is_partner is null
and a.create_date between
TO_DATE('6/3/2008 01:00:00', 'DD/MM/YY HH24:MI:SS') and
TO_DATE('27/3/2008 23:59:00', 'DD/MM/YY HH24:MI:SS')
order by a.create_datePerhaps something like this...
select id, create_date, loanid, rate, pays, gracetime, emailtosend, first_name, last_name, user_id
from (
select distinct a.id,
create_date,
a.loanid,
a.rate,
a.pays,
a.gracetime,
a.emailtosend,
d.first_name,
d.last_name,
a.user_id,
max(create_date) over (partition by a.user_id, a.loadid) as max_create_date
from CLAL_LOANCALC_DET a,
loan_Calculator b,
bv_user_profile c,
bv_mr_user_profile d
where b.loanid = a.loanid
and c.NET_USER_NO = a.resp_id
and d.user_id = c.user_id
and a.is_partner is null
and a.create_date between
TO_DATE('6/3/2008 01:00:00', 'DD/MM/YY HH24:MI:SS') and
TO_DATE('27/3/2008 23:59:00', 'DD/MM/YY HH24:MI:SS')
where create_date = max_create_date
order by create_date -
Need help in this query using Case Statement
I have the following query which is currently existing and I am adding few more conditions based on the new requirements which is based on a particular flag set as 1 or 0.
If it is set to 1 then I should use the old query as it is and if it is set to 0 then I should add the new conditions.
Basically when the flag is set to 0, I shouldnt be including some of the records that already exists and should include only new records. This is based on the plan_type_ids in (1,2,3,4).
Hence I am using the Case statement to check if the plan_type_id is in (1,2) then do a set of not exists and if the plan_type_id in (3,4) then do set of not exists.
But when I run this query it is giving me error. What am I doing wrong?
Is there any other simple way to combine all the not exists for all of those select statements as given after the line ------------------------- into a single one?
What am I doing wrong?
I tried putting the NOT EXists before the case too but that too didnt work.
Please help. Appreciate it.
Thank you in advance.
SELECT
ee.employee_id
,'WELCOMEMSG'
,DECODE( me.member_enrollment_id
,first_enr.enrollment_id
,20
,23
) status_id
,me.member_enrollment_id
,wk.welcome_msg_id
FROM wk
,employees ee
,MEMBER_ENROLLMENTS me
,plans pl
,( SELECT employee_id
,plan_type_id
,start_date
,plan_id
,MIN(MEMBER_ENROLLMENT_ID) member_enrollment_id
FROM ( SELECT me.employee_id
,DECODE(pl.plan_type_id,1,2,pl.plan_type_id) plan_type_id
,pl.start_date
,wk.plan_id
,me.member_enrollment_id
FROM wk
,PLANS pl
,MEMBER_ENROLLMENTS me
WHERE wk.done_by = nvl('TEST' ,wk.done_by)
AND wk.welcome_msg_name <> 'NONE'
AND pl.employer_id = wk.employer_id
AND wk.employer_id = 5
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = wk.plan_type_id
AND pl.plan_id = NVL(wk.plan_id,pl.plan_id)
AND me.plan_id = pl.plan_id
AND me.coverage_effective_date <> NVL(me.coverage_end_Date, me.coverage_effective_date + 1)
AND me.coverage_effective_Date BETWEEN wk.start_date AND NVL(wk.end_date, me.coverage_effective_date + 1)
MINUS
SELECT me.employee_id
,DECODE(pl.plan_type_id,1,2,pl.plan_type_id) plan_type_id
,pl.start_date
,NULL plan_id
,me.member_enrollment_id
FROM wk
,PLANS pl
,MEMBER_ENROLLMENTS me
WHERE wk.done_by = nvl(NULL,wk.done_by)
AND wk.welcome_msg_name <> 'NONE'
AND pl.employer_id = wk.employer_id
AND wk.employer_id = 5
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = wk.plan_type_id
AND pl.plan_id = wk.plan_id
AND me.plan_id = pl.plan_id
AND me.coverage_effective_date <> NVL(me.coverage_end_Date, me.coverage_effective_date + 1)
AND me.coverage_effective_Date BETWEEN wk.start_date AND NVL(wk.end_date, me.coverage_effective_date + 1)
WHERE employee_id = 100
GROUP BY employee_id ,plan_type_id,start_date ,plan_id
)first_enr
,MEMBER_EVENTS mv
WHERE wk.done_by = nvl(NULL,wk.done_by)
AND wk.employer_id = ee.employer_id
AND ee.employee_id = me.employee_id
AND ee.employee_id = 100
AND me.plan_id = pl.plan_id
AND me.coverage_effective_date <> NVL(me.coverage_end_Date, me.coverage_effective_date + 1)
AND me.coverage_effective_Date BETWEEN wk.start_date AND NVL(wk.end_date, me.coverage_effective_date + 1)
AND is_expired(me.employee_id,me.plan_id) = 'Y'
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = wk.plan_type_id
AND pl.plan_id=nvl(wk.plan_id,pl.plan_id)
AND me.employee_id = first_enr.employee_id
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = first_enr.plan_type_id
AND pl.start_date = first_enr.start_date
AND me.member_enrollment_id = mv.member_enrollment_id (+)
AND 'WELCOMEMSG' = mv.event_name(+)
AND mv.member_enrollment_id IS NULL
AND wk.welcome_msg_name <> 'NONE'
AND NVL(first_enr.plan_id,0) = NVL( wk.plan_id,0)
AND (FN_get_all_participant(wk.employer_id) = 1
OR
(FN_get_all_participant(wk.employer_id) = 0
AND (CASE WHEN pl.plan_type_id IN (1,2)
THEN NOT EXISTS (SELECT 'X'
FROM member_accounts ma
member_enrollments men3
plans pl3
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = me.employee_id
AND ma.plan_id = pl3.plan_id
AND pl3.start_date < pl.START_DATE
AND TRUNC(men3.coverage_effective_date) <> TRUNC(NVL(men3.coverage_end_date, men3.coverage_effective_date + 1 ))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id in (1, 2)
UNION
(SELECT 'X'
FROM member_accounts ma
member_enrollments men3
plans pl3
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = me.employee_id
AND ma.plan_id = pl3.plan_id
AND pl3.start_date = (pl.start_date - 365)
\ AND TRUNC(men3.coverage_effective_date) <> TRUNC(NVL(men3.coverage_end_date, men3.coverage_effective_date + 1 ))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id = wk.plan_type_id
UNION
(SELECT 'X'
FROM member_accounts ma
member_enrollments men3
plans pl3
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = men2.employee_id
AND ma.plan_id = pl3.plan_id
AND pl3.start_date < pl2.START_DATE -- '01-Jan-2011'
AND TRUNC(men3.coverage_effective_date) <> TRUNC(NVL(men3.coverage_end_date, men3.coverage_effective_date + 1 ))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id = 2
UNION
(SELECT 'X'
FROM member_accounts ma
member_enrollments men3
plans pl3
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = men2.employee_id
AND ma.plan_id = pl3.plan_id
AND pl3.start_date < pl2.START_DATE -- '01-Jan-2011'
AND TRUNC(men3.coverage_effective_date) <> TRUNC(NVL(men3.coverage_end_date, men3.coverage_effective_date + 1 ))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id = 1
WHEN pl.plan_type_id IN (3, 4)
THEN NOT EXISTS (SELECT 'X'
FROM member_accounts ma
member_enrollments men3
plans pl3
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = men2.employee_id
AND nvl(ma.account_end_date, sysdate) <= trunc(sysdate)
AND ma.plan_id = pl3.plan_id
AND pl3.start_date <= pl2.START_DATE
AND TRUNC(men3.coverage_effective_date) <> TRUNC(NVL(men3.coverage_end_date, men3.coverage_effective_date + 1 ))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id in (3, 4)
END
AND (CASE WHEN pl.plan_type_id IN (1,2)
ERROR at line 89:
ORA-00936: missing expressionMaybe
SELECT ee.employee_id,
'WELCOMEMSG',
DECODE(me.member_enrollment_id,first_enr.enrollment_id,20,23) status_id,
me.member_enrollment_id,
wk.welcome_msg_id
FROM wk,
employees ee,
MEMBER_ENROLLMENTS me,
plans pl,
(SELECT employee_id,
plan_type_id,
start_date,
plan_id,
MIN(MEMBER_ENROLLMENT_ID) member_enrollment_id
FROM (SELECT me.employee_id,
DECODE(pl.plan_type_id,1,2,pl.plan_type_id) plan_type_id,
pl.start_date,
wk.plan_id,
me.member_enrollment_id
FROM wk,
PLANS pl,
MEMBER_ENROLLMENTS me
WHERE wk.done_by = nvl('TEST',wk.done_by) /* same as wk.done_by = 'TEST' */
AND wk.welcome_msg_name 'NONE'
AND pl.employer_id = wk.employer_id
AND wk.employer_id = 5
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = wk.plan_type_id
AND pl.plan_id = NVL(wk.plan_id,pl.plan_id)
AND me.plan_id = pl.plan_id
AND me.coverage_effective_date != NVL(me.coverage_end_Date,me.coverage_effective_date + 1)
AND me.coverage_effective_Date BETWEEN wk.start_date AND NVL(wk.end_date,me.coverage_effective_date + 1)
MINUS
SELECT me.employee_id,
DECODE(pl.plan_type_id,1,2,pl.plan_type_id) plan_type_id,
pl.start_date,
NULL plan_id,
me.member_enrollment_id
FROM wk,
PLANS pl,
MEMBER_ENROLLMENTS me
WHERE wk.done_by = nvl(NULL,wk.done_by) /* same as 1 = 1 */
AND wk.welcome_msg_name 'NONE'
AND pl.employer_id = wk.employer_id
AND wk.employer_id = 5
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = wk.plan_type_id
AND pl.plan_id = wk.plan_id
AND me.plan_id = pl.plan_id
AND me.coverage_effective_date NVL(me.coverage_end_Date,me.coverage_effective_date + 1)
AND me.coverage_effective_Date BETWEEN wk.start_date AND NVL(wk.end_date, me.coverage_effective_date + 1)
WHERE employee_id = 100
GROUP BY employee_id,
plan_type_id,
start_date,
plan_id
) first_enr,
MEMBER_EVENTS mv
WHERE wk.done_by = nvl(NULL,wk.done_by)
AND wk.employer_id = ee.employer_id
AND ee.employee_id = me.employee_id
AND ee.employee_id = 100
AND me.plan_id = pl.plan_id
AND me.coverage_effective_date != NVL(me.coverage_end_Date,me.coverage_effective_date + 1)
AND me.coverage_effective_Date BETWEEN wk.start_date AND NVL(wk.end_date, me.coverage_effective_date + 1)
AND is_expired(me.employee_id,me.plan_id) = 'Y'
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = wk.plan_type_id
AND pl.plan_id = nvl(wk.plan_id,pl.plan_id)
AND me.employee_id = first_enr.employee_id
AND DECODE(pl.plan_type_id,1,2,pl.plan_type_id) = first_enr.plan_type_id
AND pl.start_date = first_enr.start_date
AND me.member_enrollment_id = mv.member_enrollment_id(+)
AND 'WELCOMEMSG' = mv.event_name(+)
AND mv.member_enrollment_id IS NULL
AND wk.welcome_msg_name != 'NONE'
AND NVL(first_enr.plan_id,0) = NVL(wk.plan_id,0)
AND (
FN_get_all_participant(wk.employer_id) = 1
OR
(FN_get_all_participant(wk.employer_id) = 0
AND NOT EXISTS(SELECT 'X'
FROM member_accounts ma,
member_enrollments men3,
plans pl3,
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = me.employee_id
AND ma.plan_id = pl3.plan_id
AND pl3.start_date < pl.START_DATE
AND TRUNC(men3.coverage_effective_date) != TRUNC(NVL(men3.coverage_end_date,men3.coverage_effective_date + 1))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id in (1,2)
and pl.plan_type_id IN (1,2)
UNION
SELECT 'X'
FROM member_accounts ma,
member_enrollments men3,
plans pl3,
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = me.employee_id
AND ma.plan_id = pl3.plan_id
AND pl3.start_date = (pl.start_date - 365)
AND TRUNC(men3.coverage_effective_date) != TRUNC(NVL(men3.coverage_end_date,men3.coverage_effective_date + 1))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id = wk.plan_type_id
and pl.plan_type_id IN (1,2)
UNION
SELECT 'X'
FROM member_accounts ma,
member_enrollments men3,
plans pl3,
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = men2.employee_id
AND ma.plan_id = pl3.plan_id
AND pl3.start_date < pl2.START_DATE -- '01-Jan-2011'
AND TRUNC(men3.coverage_effective_date) != TRUNC(NVL(men3.coverage_end_date,men3.coverage_effective_date + 1))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id = (1,2)
and pl.plan_type_id IN (1,2)
UNION
SELECT 'X'
FROM member_accounts ma,
member_enrollments men3,
plans pl3,
plan_types pt3
WHERE ma.member_account_id = men3.member_account_id
AND ma.employee_id = men2.employee_id
AND trunc(nvl(ma.account_end_date,sysdate)) <= trunc(sysdate)
AND ma.plan_id = pl3.plan_id
AND pl3.start_date <= pl2.START_DATE
AND TRUNC(men3.coverage_effective_date) != TRUNC(NVL(men3.coverage_end_date,men3.coverage_effective_date + 1))
AND pl3.plan_type_id = pt3.plan_type_id
AND pt3.plan_type_id in (3,4)
and pl.plan_type_id IN (3,4)
)Regards
Etbin -
Physician/Researcher needs help with this query
Folks,
Thank you in advance for looking at my problem. You are helping to save lives and make this world a better place.
I am trying to find out the earliest date patients took steroid. I have:
select patientid, visitnumber, steroid_start_date from treatments where steroid_start_date is not null and trim(steroid_start_date) != '/'
order by patientid, substr(steroid_start_date, -4)
I then have:
patientid visitnumber steroid_start_date(this is a string column, not date or time, and it has so many junk in it, like /2003 , /)
4 3 03/2004
4 2 01/01/2005
10 2 08/01/2005
10 1 05/01/2002
What I need is:
4 3 03/2004
10 1 05/01/2002
I am not good with group by... having.... max.... How can I limit to one patient per row and this row is their earliest visit?
Thank you very much in advance. You are helping to save lives.Here it is ->
satyaki>
satyaki>select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for 32-bit Windows: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
Elapsed: 00:00:00.53
satyaki>
satyaki>
satyaki>with t
2 as
3 (
4 select 4 patientid, 3 visitnumber, '03/2004' steroid_start_date from dual
5 union all
6 select 4, 2, '01/01/2005' from dual
7 union all
8 select 10, 2, '08/01/2005' from dual
9 union all
10 select 10, 1, '05/01/2002' from dual
11 )
12 select patientid,
13 visitnumber,
14 steroid_start_date
15 from (
16 select k.*,
17 row_number() over(partition by patientid order by to_date(substr(steroid_start_date,-4),'YYYY')) rn
18 from t k
19 order by patientid
20 )
21 where rn=1;
PATIENTID VISITNUMBER STEROID_ST
4 3 03/2004
10 1 05/01/2002
Elapsed: 00:00:00.11
satyaki>Regards.
Satyaki De. -
hi ,
I have the following data and the expected results.
Have managed to return the results in a procedure but the performance is not good.
Could a analytic be used instead ? need advise
logic
1. if all type is of run then i'll simply get the id and its seq
2. however , if the type is a if ...else then i'll need to check against table B and whether passing the if else will determine the seq to be used and if it passes the if then it'll go to the next id, if not if will go the else until it reaches the end of that section of if .. else for the same id before going to the next id
table A
id seq type checkname checkvalue check fail nextseq
id0 1 run
id0 2 run
id0 3 run
id1 1 if ac 5 = 3
id1 2 run end
id1 3 elseif ac 6 >= 4
id1 4 run
id1 5 else end
id1 6 run
id2 1 run
id2 2 run
id2 3 if an 5 <= 5
id2 4 run
id2 5 else end
id2 6 run
scenario 1
table B
id checkname val
id0 aa 0
id1 ac 2
id1 ab 8
id2 ab 4
id an 5
RESULTS :
id seq
id0 1
id0 2
id0 3
id1 6
id2 1
id2 2
id2 4
scenario 2
table B
id checkname val
id0 aa 0
id1 ac 5
id1 ab 8
id2 ab 4
id an 6
RESULTS :
id seq
id0 1
id0 2
id0 3
id1 2
id2 1
id2 2
id2 6appreciate ur advise
tks & rgdsok,
of course you can do it with model
but still it can be done with analytic functions.
one more question
what is the condition to be checked?
a.checkvalue || a.check || b.val
or
b.val || a.check || a.checkvalue
accroding to your OP it seems the second choise is correct, isn't it?
SQL> -- first scenario
SQL>
SQL> with tableA as (select 'id0' id, 1 seq, 'run' type, null checkname, null checkvalue, null check_, null fail, null nextseq from dual union all
2 select 'id0', 2, 'run', null,null,null,null,null from dual union all
3 select 'id0', 3, 'run', null,null,null,null,null from dual union all
4 select 'id1', 1, 'if', 'ac',5,'=',3,null from dual union all
5 select 'id1', 2, 'run', null,null,null,null,'end' from dual union all
6 select 'id1', 3, 'elseif', 'ac',6,'>=',4,null from dual union all
7 select 'id1', 4, 'run', null,null,null,null,null from dual union all
8 select 'id1', 5, 'else', null,null,null,null,'end' from dual union all
9 select 'id1', 6, 'run', null,null,null,null,null from dual union all
10 select 'id2', 1, 'run', null,null,null,null,null from dual union all
11 select 'id2', 2, 'run', null,null,null,null,null from dual union all
12 select 'id2', 3, 'if', 'an',5,'<=',5,null from dual union all
13 select 'id2', 4, 'run', null,null,null,null,null from dual union all
14 select 'id2', 5, 'else', null,null,null,null,'end' from dual union all
15 select 'id2', 6, 'run', null,null,null,null,null from dual),
16 tableB as (select 'id0' id, 'aa' checkname, 0 val from dual union all
17 select 'id1', 'ac', 2 from dual union all
18 select 'id1', 'ab', 8 from dual union all
19 select 'id2', 'ab', 4 from dual union all
20 select 'id2', 'an', 5 from dual)
21 --
22 select id, seq from (select tt.*, first_value(decode(flag,1,seq) ignore nulls) over (partition by id order by seq) FV from
23 (select a.*, b.val, lag(nvl(nvl2(val,case check_ when '=' then decode(sign(val-checkvalue),0,1,0)
24 when '>=' then decode(sign(val-checkvalue),-1,0,1)
25 when '>' then decode(sign(val-checkvalue),1,1,0)
26 when '<=' then decode(sign(val-checkvalue),1,0,1)
27 when '<' then decode(sign(val-checkvalue),-1,1,0)
28 end, decode(type,'else',1)),val)) over (partition by a.id order by seq) flag, lag(type,1,type) over (partition by a.id order by seq) lag_type
29 from tableA a, tableB b
30 where a.id=b.id(+)
31 and a.checkname=b.checkname(+)
32 order by 1,2) tt
33 ) where (type='run' and lag_type='run') or seq=FV
34 /
ID SEQ
id0 1
id0 2
id0 3
id1 6
id2 1
id2 2
id2 4
7 rows selected
SQL> --second scenario
SQL>
SQL> with tableA as (select 'id0' id, 1 seq, 'run' type, null checkname, null checkvalue, null check_, null fail, null nextseq from dual union all
2 select 'id0', 2, 'run', null,null,null,null,null from dual union all
3 select 'id0', 3, 'run', null,null,null,null,null from dual union all
4 select 'id1', 1, 'if', 'ac',5,'=',3,null from dual union all
5 select 'id1', 2, 'run', null,null,null,null,'end' from dual union all
6 select 'id1', 3, 'elseif', 'ac',6,'>=',4,null from dual union all
7 select 'id1', 4, 'run', null,null,null,null,null from dual union all
8 select 'id1', 5, 'else', null,null,null,null,'end' from dual union all
9 select 'id1', 6, 'run', null,null,null,null,null from dual union all
10 select 'id2', 1, 'run', null,null,null,null,null from dual union all
11 select 'id2', 2, 'run', null,null,null,null,null from dual union all
12 select 'id2', 3, 'if', 'an',5,'<=',5,null from dual union all
13 select 'id2', 4, 'run', null,null,null,null,null from dual union all
14 select 'id2', 5, 'else', null,null,null,null,'end' from dual union all
15 select 'id2', 6, 'run', null,null,null,null,null from dual),
16 tableB as (select 'id0' id, 'aa' checkname, 0 val from dual union all
17 select 'id1', 'ac', 5 from dual union all
18 select 'id1', 'ab', 8 from dual union all
19 select 'id2', 'ab', 4 from dual union all
20 select 'id2', 'an', 6 from dual)
21 --
22 select id, seq from (select tt.*, first_value(decode(flag,1,seq) ignore nulls) over (partition by id order by seq) FV from
23 (select a.*, b.val, lag(nvl(nvl2(val,case check_ when '=' then decode(sign(val-checkvalue),0,1,0)
24 when '>=' then decode(sign(val-checkvalue),-1,0,1)
25 when '>' then decode(sign(val-checkvalue),1,1,0)
26 when '<=' then decode(sign(val-checkvalue),1,0,1)
27 when '<' then decode(sign(val-checkvalue),-1,1,0)
28 end, decode(type,'else',1)),val)) over (partition by a.id order by seq) flag, lag(type,1,type) over (partition by a.id order by seq) lag_type
29 from tableA a, tableB b
30 where a.id=b.id(+)
31 and a.checkname=b.checkname(+)
32 order by 1,2) tt
33 ) where (type='run' and lag_type='run') or seq=FV
34 /
ID SEQ
id0 1
id0 2
id0 3
id1 2
id2 1
id2 2
id2 6
7 rows selected
SQL> Message was edited by:
Volder
1> In my query I don't use FAIL column
so I go consequently throug SEQ column order.
Using MODEL - you could use FAIL values as dimension values for getting the next row needed.
2> In my query If there're no needed values in TABLE B - the else part of your IF_CLAUSES will be triggered.
3> Instead of huge case you can just create function that will get inputted 3 params: 2 values and check operator - and will return 1 if true, 0 if it is false.
Just take these comments into account. -
Hi,
I am using SQL Server 2008 Enterprise edition 64 bit on Windows serer 2008 enterprise edition 64 bit.
The below query works fine. I am trying to rewrite the code without using the sub query. In the end i should get the same results for both the query which we are going to rewrite and the below mentioned query.
Can any help me please.
SELECT
t1.DOCUMENT_NO,
RTRIM(CAST(t1."ENVIRONMENT_CD" AS VARCHAR(5))) + '*' + RTRIM(CAST(t1."ORDER_NO" AS VARCHAR(25)))
+
CASE WHEN (SELECT COUNT(DISTINCT S1.TEST_REPORTING_MATERIAL_SID)
FROM dbo.TBLTEST S1 ON S1.DOCUMENT_NO = T1.DOCUMENT_NO
WHERE S1.TEST_REPORTING_MATERIAL_SID > 0
AND S1.COMPANY_CD = T1.COMPANY_CD AND S1.INVOICE_SEQ_NO = T1.INVOICE_SEQ_NO
AND S1.DOCUMENT_ITEM_NO = T1.DOCUMENT_ITEM_NO
AND S1.ORDER_NO = T1.ORDER_NO) > 1 THEN
RTRIM(CAST(t1."TEST_REPORTING_MATERIAL_SID" AS VARCHAR(10)))
ELSE
END as sum_key,
t1.SALES_ANALYSIS_CD
FROM
dbo.TBLTEST_ALL T1
WHERE
t1.TIME_SID >= 20001001 ;
I tried to use a left outer Join , it did not work out. I tried to take the subquery and assign it to a variable and use in the above mentioned query. But i am not getting the same results.
I don't want to use the above query so i am planning to rewrite the code.
Thank You,I doubt that the query you posted works fine, because:
FROM dbo.TBLTEST S1 ON S1.DOCUMENT_NO = T1.DOCUMENT_NO
This is a syntax error. I will have to assume that your inteded query reads:
SELECT t1.DOCUMENT_NO,
rtrim(cast(t1."ENVIRONMENT_CD" AS varchar(5))) + '*' +
rtrim(cast(t1."ORDER_NO" AS varchar(25))) +
CASE WHEN (SELECT COUNT(DISTINCT S1.TEST_REPORTING_MATERIAL_SID)
FROM dbo.TBLTEST S1
WHERE S1.DOCUMENT_NO = T1.DOCUMENT_NO
AND S1.TEST_REPORTING_MATERIAL_SID > 0
AND S1.COMPANY_CD = T1.COMPANY_CD
AND S1.INVOICE_SEQ_NO = T1.INVOICE_SEQ_NO
AND S1.DOCUMENT_ITEM_NO = T1.DOCUMENT_ITEM_NO
AND S1.ORDER_NO = T1.ORDER_NO) > 1 THEN
RTRIM(CAST(t1."TEST_REPORTING_MATERIAL_SID" AS VARCHAR(10)))
ELSE '*-'
END as sum_key, t1.SALES_ANALYSIS_CD
FROM dbo.TBLTEST_ALL T1
WHERE t1.TIME_SID >= 20001001
Here is a query with a left join. Whether it is actually better than the one you have I am not sure.
SELECT t1.DOCUMENT_NO,
rtrim(cast(t1."ENVIRONMENT_CD" AS varchar(5))) + '*' +
rtrim(cast(t1."ORDER_NO" AS varchar(25))) +
CASE WHEN S1."EXISTS" IS NOT NULL
THEN RTRIM(CAST(t1."TEST_REPORTING_MATERIAL_SID" AS varchar(10)))
ELSE '*-'
END as sum_key, t1.SALES_ANALYSIS_CD
FROM dbo.TBLTEST_ALL T1
LEFT JOIN (SELECT 1 AS "EXISTS"
FROM dbo.TBLTEST
WHERE TEST_REPORTING_MATERIAL_SID > 0
GROUP BY DOCUMENT_NO, COMPANY_CD, INVOICE_SEQ_NO,
DOCUMENT_ITEM_NO, ORDER_NO
HAVING COUNT(DISTINCT TEST_REPORTING_MATERIAL_SID) > 1) AS S1
ON S1.DOCUMENT_NO = T1.DOCUMENT_NO
AND S1.COMPANY_CD = T1.COMPANY_CD
AND S1.INVOICE_SEQ_NO = T1.INVOICE_SEQ_NO
AND S1.DOCUMENT_ITEM_NO = T1.DOCUMENT_ITEM_NO
AND S1.ORDER_NO = T1.ORDER_NO
WHERE t1.TIME_SID >= 20001001
Erland Sommarskog, SQL Server MVP, [email protected] -
SQL I need help with this query Please help
List the names of all the products whose weight unit measure is “Gram”. Order the list by product name. Do not use JOINS, but use the IN clause with a sub-query.
select Name
from UnitMeasure
where Name= 'Gram'
order by Name
I did this, but it seem that the requirement is different.As a guess:
Select Name from Product
where UnitMeasure in (Select Name from unitmeasure where name = 'Gram')
Andy Tauber
Data Architect
The Vancouver Clinic
Website | LinkedIn
This posting is provided "AS IS" with no warranties, and confers no rights. Please remember to click
"Mark as Answer" and "Vote as Helpful" on posts that help you. This can be beneficial to other community members reading the thread. -
Dear all,
I am quite a beginner and assigned a critical task, here is the table contents and below is the function.
function returns the access permission(M or V) of user, the task here is if user is already
defined in the table it gets the access flag value. But my problem here is if it is not defined
in the table it should get department accessflag without any explicit initialization in the function.
SQL> SELECT * FROM PACS;
BRANCH DEPT ACCESSFLAG USERID
HO FIN M NANDA
HO FIN M RAVI
HO FIN V
HO MKT M GOPAL
HO MKT M KISHORE
HO MKT V
HO FOC M SAILESH
HO FOC V
Create Or Replace
Function GetAccessFlag(IBranch In VarChar2,
IDept In VarChar2,
IUserId In VarChar2)
Return Varchar2
Is
LvAccess VarChar2(2);
Begin
Begin
Select AccessFlag
Into LvAccess
From Pacs
Where (Branch = IBranch Or (IBranch Is Null))
And (Dept = IDept Or (IDept is Null))
And (UserId = IUserId Or (IUserId Is Null));
Exception
When No_Data_Found Then
Raise_Application_Error(-20001, 'No Acess permissions defined');
When Others Then
Raise_Application_Error(-20002, 'Other Error - '||SqlErrM);
End;
Return (LvAccess);
End GetAccessFlag;thank you very much in advance.I prepared small example for you:
<pre>
[email protected]> create table pacs(
2 branch char(2) not null,
3 dept char(3) not null,
4 accessflag char(1) not null,
5 userid varchar2(10)
6 )
7 /
Table created.
[email protected]> insert into pacs values('HO','FIN','M','NANDA');
1 row created.
[email protected]> insert into pacs values('HO','FIN','M','RAVI');
1 row created.
[email protected]> insert into pacs values('HO','FIN','V',null);
1 row created.
[email protected]> insert into pacs values('HO','MKT','M','GOPAL');
1 row created.
[email protected]> insert into pacs values('HO','MKT','M','KISHORE');
1 row created.
[email protected]> insert into pacs values('HO','MKT','V',NULL);
1 row created.
[email protected]> insert into pacs values('HO','FOC','M','SAILESH');
1 row created.
[email protected]> insert into pacs values('HO','FOC','V',NULL);
1 row created.
[email protected]> commit;
Commit complete.
[email protected]> create or replace function getAccessFlag(p_Branch char,p_Dept char,
2 p_Username varchar2)
3 return char
4 is
5 no_data_for_user exception;
6 v_result char;
7
8 function checkAccess(p_B char, p_D char, p_U varchar2)
9 return char is
10 v_access char;
11 function checkUserAccess(p_B char, p_D char, p_U varchar2)
12 return char is
13 v_access char;
14 begin
15 select accessflag
16 into v_access
17 from pacs
18 where branch = p_B and dept = p_D and userid = p_U;
19 return v_access;
20 exception
21 when no_data_found then
22 raise no_data_for_user;
23 end;
24 begin
25 v_access := checkUserAccess(p_B, p_D, p_U);
26 return v_access;
27 exception
28 when no_data_for_user then
29 select accessflag
30 into v_access
31 from pacs
32 where branch = p_B and dept = p_D and userid is null;
33 return v_access;
34 end;
35 begin
36 v_result := checkAccess(p_Branch, p_Dept, p_Username);
37 return v_result;
38 exception
39 when no_data_found then
40 raise_application_error(-20001,'No data for user and department');
41 end;
42 /
Function created.
[email protected]> select getAccessFlag('HO','FU','Krystian') from dual;
select getAccessFlag('HO','FU','Krystian') from dual
ERROR at line 1:
ORA-20001: No data for user and department
ORA-06512: at "MOB.GETACCESSFLAG", line 40
[email protected]> select getAccessFlag('HO','FIN','Krystian') from dual;
GETACCESSFLAG('HO','FIN','KRYSTIAN')
V
[email protected]> select getAccessFlag('HO','FIN','NANDA') from dual;
GETACCESSFLAG('HO','FIN','NANDA')
M
[email protected]>
</pre>
Best Regards
Krystian Zieja / mob -
Please, need help with a query
Hi !
Please need help with this query:
Needs to show (in cases of more than 1 loan offer) the latest create_date one time.
Meaning, In cases the USER_ID, LOAN_ID, CREATE_DATE are the same need to show only the latest, Thanks!!!
select distinct a.id,
create_date,
a.loanid,
a.rate,
a.pays,
a.gracetime,
a.emailtosend,
d.first_name,
d.last_name,
a.user_id
from CLAL_LOANCALC_DET a,
loan_Calculator b,
bv_user_profile c,
bv_mr_user_profile d
where b.loanid = a.loanid
and c.NET_USER_NO = a.resp_id
and d.user_id = c.user_id
and a.is_partner is null
and a.create_date between
TO_DATE('6/3/2008 01:00:00', 'DD/MM/YY HH24:MI:SS') and
TO_DATE('27/3/2008 23:59:00', 'DD/MM/YY HH24:MI:SS')
order by a.create_dateTake a look on the syntax :
max(...) keep (dense_rank last order by ...)
http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/functions056.htm#i1000901
Nicolas. -
Hi everyone...
I need help with this query. The table 'cobros' has a primary key defined by id_cliente + id_cobro. I pretend to classify rows by COUNT(id_cobro) which are between a date range.
A client could have 1 or 2 or 3 rows per day, no more for a specific date. I would like to get first, all clients with COUNT(id_cobro) = 1, all clients with COUNT(id_cobro) = 2, and finally all clients with COUNT(id_cobro) = 3.
Something similar to:
1 SELECT id_cliente, COUNT(id_cobro) FROM cobros
2 WHERE fecha_proximo_cobro >= '2011-05-30 00:00'
3 AND fecha_proximo_cobro <= '2011-05-30 23:59'
4 AND COUNT(id_cobro) = 1
5 GROUP BY id_cliente
The fourth line is the problem. It doesn't work.
Thanks in advance!!!
MarioMaybe you are looking for something like this?
SELECT id_cliente
, COUNT(*) AS cnt
FROM cobros
WHERE fecha_promixo_cobro BETWEEN TO_DATE('2011-05-30 00:00','YYYY-MM-DD HH24:MI') AND TO_DATE('2011-05-30 23:59','YYYY-MM-DD HH24:MI')
GROUP BY id_cliente
ORDER BY 2
, 1Also, NEVER rely on implicit data type conversion as you have (you provide a STRING not a DATE).
Edited by: Centinul on Jun 2, 2011 12:36 PM
Fixed syntax error. -
I need help on This SQL problem ASAP :)
Hi All,
I need help on this....
I have a table...
Say table name: one
with these values
premnum status
1234 C
1234 F
1234 P
1234 F
5678 C
5678 F
5678 P
9112 C
9112 F
9112 P
9112 F
3456 C
3456 F
3456 P
7890 C
7890 P
7890 F
Now, I want to output only those premnum with status = 'C' and those premnum with Status 'F' having a count > 1 (with two status = 'F')
So the output would be something like this
premnum status
1234 C
1234 F
1234 F
5678 C
9112 C
9112 F
9112 F
3456 C
7890 C
I really need help on this asap...
I need the SQL statement on this....
Thank you in advance. :)
Edited by: 804697 on Oct 23, 2010 9:45 PMHi,
you can use the following query.
CREATE TABLE PREM_TEST ( premnum NUMBER , STATUS VARCHAR2(1));
INSERT INTO PREM_TEST VALUES(1234 ,'C');
INSERT INTO PREM_TEST VALUES(1234 ,'F');
INSERT INTO PREM_TEST VALUES(1234 ,'P');
INSERT INTO PREM_TEST VALUES(1234 ,'F');
INSERT INTO PREM_TEST VALUES(5678 ,'C');
INSERT INTO PREM_TEST VALUES(5678 ,'F');
INSERT INTO PREM_TEST VALUES(5678 ,'P');
INSERT INTO PREM_TEST VALUES(9112 ,'C');
INSERT INTO PREM_TEST VALUES(9112 ,'F');
INSERT INTO PREM_TEST VALUES(9112 ,'P');
INSERT INTO PREM_TEST VALUES(9112 ,'F');
INSERT INTO PREM_TEST VALUES(3456 ,'C');
INSERT INTO PREM_TEST VALUES(3456 ,'F');
INSERT INTO PREM_TEST VALUES(3456 ,'P');
INSERT INTO PREM_TEST VALUES(7890 ,'C');
INSERT INTO PREM_TEST VALUES(7890 ,'P');
INSERT INTO PREM_TEST VALUES(7890 ,'F');
SELECT PREMNUM , STATUS
FROM PREM_TEST
WHERE STATUS = 'C'
OR (PREMNUM , STATUS ) IN ( SELECT PREMNUM , STATUS
FROM PREM_TEST
WHERE STATUS = 'F'
GROUP BY PREMNUM , STATUS
HAVING COUNT(*) > 1
PREMNUM S
1234 C
1234 F
1234 F
5678 C
9112 C
9112 F
9112 F
3456 C
7890 C
9 rows selected. -
Please I really need help with this video problem.
Hi!
Please I need help with this app I am trying to make for an Android cellphone and I've been struggling with this for a couple of months.
I have a main flash file (video player.fla) that will load external swf files. This is the main screen.When I click the Sets Anteriores button I want to open another swf file called sets.swf.The app is freezing when I click Sets Anteriores button
Here is the code for this fla file.
import flash.events.MouseEvent;
preloaderBar.visible = false;
var loader:Loader = new Loader();
btHome.enabled = false;
var filme : String = "";
carregaFilme("home.swf");
function carregaFilme(filme : String ) :void
var reqMovie:URLRequest = new URLRequest(filme);
loader.load(reqMovie);
loader.contentLoaderInfo.addEventListener(Event.OPEN,comeco);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,progresso);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completo);
palco.addChild(loader);
function comeco(event:Event):void
preloaderBar.visible = true;
preloaderBar.barra.scaleX = 0;
function progresso(e:ProgressEvent):void
var perc:Number = e.bytesLoaded / e.bytesTotal;
preloaderBar.percent.text = Math.ceil(perc*100).toString();
preloaderBar.barra.scaleX = perc;
function completo(e:Event):void
preloaderBar.percent.text = '';
preloaderBar.visible = false;
btHome.addEventListener(MouseEvent.MOUSE_DOWN,onHomeDown);
btHome.addEventListener(MouseEvent.MOUSE_UP,onHomeUp);
btSets.addEventListener(MouseEvent.MOUSE_DOWN,onSetsDown);
btSets.addEventListener(MouseEvent.MOUSE_UP,onSetsUp);
btVivo.addEventListener(MouseEvent.MOUSE_DOWN,onVivoDown);
btVivo.addEventListener(MouseEvent.MOUSE_UP,onVivoUp);
btHome.addEventListener(MouseEvent.CLICK,onHomeClick);
btSets.addEventListener(MouseEvent.CLICK,onSetsClick);
function onSetsClick(Event : MouseEvent) : void
if (filme != "sets.swf")
filme = "sets.swf";
carregaFilme("sets.swf");
function onHomeClick(Event : MouseEvent) : void
if (filme != "home.swf")
filme = "home.swf";
carregaFilme("home.swf");
function onHomeDown(Event : MouseEvent) : void
btHome.y += 1;
function onHomeUp(Event : MouseEvent) : void
btHome.y -= 1;
function onSetsDown(Event : MouseEvent) : void
btSets.y += 1;
function onSetsUp(Event : MouseEvent) : void
btSets.y -= 1;
function onVivoDown(Event : MouseEvent) : void
btVivo.y += 1;
function onVivoUp(Event : MouseEvent) : void
btVivo.y -= 1;
Now this is the sets.fla file:
Here is the code for sets.fla
import flash.utils.Timer;
import flash.events.TimerEvent;
var video:Video;
var nc:NetConnection;
var ns:NetStream;
var t : Timer = new Timer(1000,0);
var meta:Object = new Object();
this.addEventListener(Event.ADDED_TO_STAGE,init);
function init(e:Event):void{
video= new Video(320, 240);
addChild(video);
video.x = 80;
video.y = 100;
nc= new NetConnection();
nc.connect(null);
ns = new NetStream(nc);
ns.addEventListener(NetStatusEvent.NET_STATUS, onStatusEvent);
ns.bufferTime = 1;
ns.client = meta;
video.attachNetStream(ns);
ns.play("http://www.djchambinho.com/videos/segundaquinta.flv");
ns.pause();
t.addEventListener(TimerEvent.TIMER,timeHandler);
t.start();
function onStatusEvent(stat:Object):void
trace(stat.info.code);
meta.onMetaData = function(meta:Object)
trace(meta.duration);
function timeHandler(event : TimerEvent) : void
if (ns.bytesLoaded>0&&ns.bytesLoaded == ns.bytesTotal )
ns.resume();
t.removeEventListener(TimerEvent.TIMER,timeHandler);
t.stop();
The problem is when I test it on my computer it works but when I upload it to my phone it freezes when I click Sets Anteriores button.
Please help me with this problem I dont know what else to do.
thank youMy first guess is you're simply generating an error. You'll always want to load this on your device in quick debugging over USB so you can see any errors you're generating.
Outside that, if you plan on accessing anything inside the SWF you should be loading the SWF into the correct context. Relevant sample code:
var context:LoaderContext = new LoaderContext();
context.securityDomain = SecurityDomain.currentDomain;
context.applicationDomain = ApplicationDomain.currentDomain;
var urlReq:URLRequest = new URLRequest("http://www.[your_domain_here].com/library.swf");
var ldr:Loader = new Loader();
ldr.load(urlReq, context);
More information:
http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9 b90204-7de0.html
If you're doing this on iOS you'll need to stripped SWFs if you plan on using any coding (ABC) inside the files. You mentioned iOS so I won't get into that here, but just incase, here's info on stripping external SWFs:
http://blogs.adobe.com/airodynamics/2013/03/08/external-hosting-of-secondary-swfs-for-air- apps-on-ios/ -
Need help with SQL Query with Inline View + Group by
Hello Gurus,
I would really appreciate your time and effort regarding this query. I have the following data set.
Reference_No---Check_Number---Check_Date--------Description-------------------------------Invoice_Number----------Invoice_Type---Paid_Amount-----Vendor_Number
1234567----------11223-------------- 7/5/2008----------paid for cleaning----------------------44345563------------------I-----------------*20.00*-------------19
1234567----------11223--------------7/5/2008-----------Adjustment for bad quality---------44345563------------------A-----------------10.00------------19
7654321----------11223--------------7/5/2008-----------Adjustment from last billing cycle-----23543556-------------------A--------------------50.00--------------19
4653456----------11223--------------7/5/2008-----------paid for cleaning------------------------35654765--------------------I---------------------30.00-------------19
Please Ignore '----', added it for clarity
I am trying to write a query to aggregate paid_amount based on Reference_No, Check_Number, Payment_Date, Invoice_Number, Invoice_Type, Vendor_Number and display description with Invoice_type 'I' when there are multiple records with the same Reference_No, Check_Number, Payment_Date, Invoice_Number, Invoice_Type, Vendor_Number. When there are no multiple records I want to display the respective Description.
The query should return the following data set
Reference_No---Check_Number---Check_Date--------Description-------------------------------Invoice_Number----------Invoice_Type---Paid_Amount-----Vendor_Number
1234567----------11223-------------- 7/5/2008----------paid for cleaning----------------------44345563------------------I-----------------*10.00*------------19
7654321----------11223--------------7/5/2008-----------Adjustment from last billing cycle-----23543556-------------------A--------------------50.00--------------19
4653456----------11223--------------7/5/2008-----------paid for cleaning------------------------35654765-------------------I---------------------30.00--------------19
The following is my query. I am kind of lost.
select B.Description, A.sequence_id,A.check_date, A.check_number, A.invoice_number, A.amount, A.vendor_number
from (
select sequence_id,check_date, check_number, invoice_number, sum(paid_amount) amount, vendor_number
from INVOICE
group by sequence_id,check_date, check_number, invoice_number, vendor_number
) A, INVOICE B
where A.sequence_id = B.sequence_id
Thanks,
NickIt looks like it is a duplicate thread - correct me if i'm wrong in this case ->
Need help with SQL Query with Inline View + Group by
Regards.
Satyaki De. -
Hi.. need help with a query
hello guys :)
I need help with this exercise:
Find the most common cooking method in recipes that contain tomatoes.
the 4 tables:
t_recipes
--recipe_no
--recipe_name
t_products
--product_no
-product_name [tomatoes,cucumbers, onions]
t_integration
--product_no
--recipe_no
t_cooking_mode
recipe_no
mode [Frying,baking]
I am realy lost :S
thank youHi,
851072 wrote:
Thank you for your comment :)
But... I didn`t understand the first partSorry, what part is that? You probably understood "Welcome to the forum!" It looks like you understood most of what I said, perhaps before I said it. You seem to be on the right track.
Unlike talking to a co-worker in the next cube, exchanging messages with someone on this forum takes a fair amount of time, so it's worth the time it takes to explain things very clearly, more than you would in conversation. Post all the relevant information, and say exactly what the problem is.
amm i tried to do this:
select t_recipes.recipe_name, count(t_cooking_mode.cooking_mode)
from (t_cooking_mode INNER JOIN t_integration ON t_cooking_mode.recipe_no = t_integration.recipe_no )
INNER JOIN t_products ON t_integration.product_no = t_products.product_no)
WHERE t_products.product_name = 'tomatoes'
GROUP BY t_recipes.recipe_name
help?Please help by posting whatever you know about the problem. For example, if there's a error message, post the complete error message, including the line number.
Help the people who want to help you by formatting your code and making it easy to read and understand. This will help you, too.
For example, here's exactly what you posted, with only the white-space changed to make parallel items, such as parentheses, line up nicely:
select t_recipes.recipe_name
, count(t_cooking_mode.cooking_mode)
from ( t_cooking_mode
INNER JOIN t_integration ON t_cooking_mode.recipe_no = t_integration.recipe_no
INNER JOIN t_products ON t_integration.product_no = t_products.product_no
WHERE t_products.product_name = 'tomatoes'
GROUP BY t_recipes.recipe_nameWhen you format your code like this, it can be very easy to spot errors like unbalanced parentheses. In this case, the ')' right before the WHERE clause has no matching '('. You don't need to use any parentheses at all in the FROM clause. You can simply say:
FROM t_cooking_mode
JOIN t_integration ON t_cooking_mode.recipe_no = t_integration.recipe_no
JOIN t_products ON t_integration.product_no = t_products.product_no
WHERE ...INNER JOIN is the default kind of join, which makes sense, since the majority of all joins are inner joins. I usually say JOIN (instead of INNER JOIN) because it makes the code more compact and easier to read (at least for me), but I won't be maintaining your code, so do what's best for you.
What are you trying to find in this problem? Is it a recipe name or a cooking mode? If it's a cooking mode, the why do you have t_recipes.reciple_name in the SELECT (and GROUP BY) clause? Shouldn't you be using some other column, from some other table?
If I understand the problem correctly, the t_recipes table is not needed in this problem. You won't necessarily use every table in every query.
When you post formatted text on this site, type these 6 characters:
\(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing. -
Apple TV uploads can take up to 30 minutes. I need control over this, because it interrupts my presentations. How can I control the time it chooses to do uploads?
this is exactly the kind of response i expected, almost begged support to please not do this to me and yet there it is another meaningless, non helpful, standard template response to restart my apple tv.
this does NOT work which is why i am contacting you. i have tried all suggestions about unplugging and restarting and nothing works.
i live in an apartment and logon to the provided wifi wireless. so i do not have access to a router. however, management says they have talked with their provider and have been assured that the required ports are available.
remember all the jokes about how bad windows was because the solution was always to re boot. funny huh? how is apple any different.
i have been to the local apple care store and they are clueless, too.
should we just end it here and you admit that i will not be getting any support from apple on this one? i got the ipad because my kids were such big fans. it is difficult for me to share their enthusiasm.
at this point i am just curious about how you say you cannot support your own product so i can complete my file on this contact.
thanks...sorry it was you who got this problem..
Maybe you are looking for
-
OAF page is not able to display the custom error messages
Hi, I have extended a seeded CO and trying to throw few custom error messages. It was working fine, but suddenly it is not able to display the error messages(but checked that the error messages are still present in application) and saying "Message no
-
Brand New IPS, I cannot "login"
Hi, I have just purchased a brand new IPS module for my ASA5510. However, I am unable to login and cannot get started .... I see this error "Authentication token manipulation error" see below: ASA5510# session 1 Opening command session with slot 1. C
-
"Orphan Timeline" & "End Action Not Set." What does this mean????
I am setting up a Blu-Ray DVD in Encore. I have a project on a Premiere Pro CS 5.5 Timeline, which is 2 and a half hours long with 24 Encore chapters in it. I have not yet Encoded it in Media Encoder as of yet. I am setting up all my menus and button
-
I create a project in the BCC,I don't do nothing ,then I delete this project in the Acc(publishing).And I do a full deployment.but the project is exist in Bcc,but i can't found in the Acc,I want delete this project in the Bcc.but i click this project
-
Object moved outside of view, cannot get?
Ok, this is my fault but I'm trying to figure out how to fix my mistake and hopefully learn what is probably a very easy fix that is staring me in the face. I created an object that I placed outside the view of the presentation to the left and then