In EMP table, for those emp whose Hiredate is same, update
their sal by "sal+500" or else for others keep the sal as it
is, how to do it by SQL query
Answers were Sorted based on User's Feedback
Answer / sanjaygupta1981
UPDATE emp
SET sal=sal+500
WHERE hiredate IN (SELECT hiredate
FROM employees
HAVING COUNT(*)>1
GROUP BY hiredate)
The above query will update the records of all those employees
whose hiredate is same.
| Is This Answer Correct ? | 17 Yes | 5 No |
Hi Sanjay,
the query u posted is a bit wrong,1st u have to do group by
n then having clause comes n not vise versa. so the final
query will be as below:
UPDATE emp
SET sal=sal+500
WHERE hiredate IN (SELECT hiredate
FROM employees
GROUP BY hiredate
HAVING COUNT(hiredate)>1
)
Hi Srinu,
It doesn't matter whether u write count(*) or
count(hiredate),the answer will always the same but its
better to give count(hiredate) only as it is easier to
understand.
| Is This Answer Correct ? | 6 Yes | 2 No |
Hi Srinu,
you check the query once again..Query is not wrong..
UPDATE emp
SET sal=sal+500
WHERE hiredate IN (SELECT hiredate
FROM emp
HAVING COUNT(*)>1
GROUP BY hiredate
it'll give the same result whether we write count(*) or
count(hiredate)..
But I agree but its better to give count(hiredate)instead of
COUNT(*)...coz it is easier to understand.
| Is This Answer Correct ? | 2 Yes | 1 No |
Answer / guest
update emp a set a.sal=a.sal+500 where a.hiredate in(select
max(b.hiredate) from emp b group by b.hiredate having
count(b.hiredate)>1);
or
update emp a set a.sal=a.sal+500 where a.hiredate=(select
max(b.hiredate) from emp b where a.hiredate=b.hiredate group
by b.hiredate having count(b.hiredate)>1);
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / sukanta
update emp a set a.sal=a.sal+500 where a.hiredate in(select
max(b.hiredate) from emp b group by b.hiredate having
count(b.hiredate)>1);
or
update emp a set a.sal=a.sal+500 where a.hiredate=(select
max(b.hiredate) from emp b where a.hiredate=b.hiredate group
by b.hiredate having count(b.hiredate)>1);
above is Posted By
Sukanta
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / srinivas
Hi suraj no need to put first group by and then having
clause
we can give any order it will work
please check and let me know
| Is This Answer Correct ? | 1 Yes | 2 No |
Answer / sbvp
update emp set sal=sal+500
or
alter table emp modify sal=sal+500
| Is This Answer Correct ? | 1 Yes | 28 No |
how to join the 2 different table with different columns in informatica?
when i was running the seesion, after loading 100 records, session suddenly fails.Next time i want to load the remaing rows in target with out truncate target table.What should i use?
how to find the 5th highest salary form each department using 1.SQL Query 2. Informatica power center designer?
i have source in oracle 10g,oracle 8i how will u take the data from two sources
how to use incremental load?
Where are the source flat files kept before running the session?
Hi All, i have question regarding Change Data Capture in Informatica. As i know we can do this using Incremental Aggregation(i never worked on Informatica but i read) and i think we can do the same with SQL Over write and with variables. Can someone tell me how do we do this using other two techniques.. using SQL Over write and variables. Thanks for the help and greatly appreciated.
i have 1000 records in my dource table, the same i have in target ,but a new column added in target as "batchno", and this column adds no 10 for 1st 100 records and 20 for next 100 records and 30 next 100 records and vice versa. how to acheive this?
Explain grouped cross tab?
i have two flat files.. containing same type of data i want to load it to dwh..how many source qualifires i need
What are slowly changing dimensions?
5 Answers Informatica, Verinon Technology Solutions,
how tokens will generate?