SQL query on emp table(SCOTT Schema): Highest salary per department
From emp table of SCOTT schema. I would like to know the name, sal,the deptno he belongs of the highest paid employee from each dept.
Explaining further:
The following query only returns deptno and max(sal) of each department. I need the name of the highest paid employee from each dept along with the below result.
SQL> SELECT DEPTNO,MAX(SAL) FROM EMP GROUP BY deptno;
DEPTNO MAX(SAL)
30 2850
20 3000
10 5000
It seems you want just one ename if two employees have the same highest salary. In that case you can use this construct:
SQL> select deptno
2 , max(sal)
3 , max(ename) keep (dense_rank last order by sal)
4 from emp
5 group by deptno
6 /
DEPTNO MAX(SAL) MAX(ENAME)
10 5000 KING
20 3000 SCOTT
30 2850 BLAKE
3 rijen zijn geselecteerd.Regards,
Rob.
Similar Messages
-
SQL> select * from emp;
EMPNO EMPNAME SAL empd
1 DJ 2800 26-MAR-06
2 VJ 9800 12-APR-00
2 VJ 7800 27-MAR-06
1 DJ 8800 27-MAR-06
The output i am expecting is as follows, I need to find the max sal, min
sal ,max saldate, min saldate of each employee.
Empname SAL(maxsal) empd(Maxsal date) Sal(minsal) empd(minsaldate Avg(sal)
DJ 8800 27-Mar-06 2800 26-MAR-06 5800
VJ 9800 12-APR-06 7800 27-MAR-06 8800
Please help me to get the above output using sql query. I am sure this can be achieved using plsql, But my requirement is to achieve this using sqlquery.
Please reply.
Thanks,
DanesSQL> select 1 empno, 'DJ' ename, 2800 sal, to_date('26-MAR-06','dd-mon-rr') empd from dual
2 union all
3 select 1, 'DJ', 8800, to_date('11-APR-06', 'dd-mon-rr') from dual
4 union all
5 select 1, 'DJ', 8900, to_date('14-MAY-05', 'dd-mon-rr') from dual
6 union all
7 select 1, 'DJ', 2200, to_date('15-MAY-05', 'dd-mon-rr') from dual
8 union all
9 select 2, 'VJ', 9800, to_date('12-APR-06', 'dd-mon-rr') from dual
10 union all
11 select 2, 'VJ', 7800, to_date('27-MAR-06', 'dd-mon-rr') from dual
12 union all
13 select 2, 'VJ', 7200, to_date('28-MAR-06', 'dd-mon-rr') from dual
14 /
EMPNO EN SAL EMPD
1 DJ 2800 26-MAR-06
1 DJ 8800 11-APR-06
1 DJ 8900 14-MAY-05
1 DJ 2200 15-MAY-05
2 VJ 9800 12-APR-06
2 VJ 7800 27-MAR-06
2 VJ 7200 28-MAR-06
7 rows selected.
SQL> select empno, ename,
2 max(sal) keep (DENSE_RANK FIRST ORDER BY sal desc) max_sal,
3 max(empd) keep (DENSE_RANK FIRST ORDER BY sal desc) max_date,
4 min(sal) keep (DENSE_RANK LAST ORDER BY sal desc) min_sal,
5 min(empd) keep (DENSE_RANK LAST ORDER BY sal desc) min_date
6 from (
7 select 1 empno, 'DJ' ename, 2800 sal, to_date('26-MAR-06','dd-mon-rr') empd from dual
8 union all
9 select 1, 'DJ', 8800, to_date('11-APR-06', 'dd-mon-rr') from dual
10 union all
11 select 1, 'DJ', 8900, to_date('14-MAY-05', 'dd-mon-rr') from dual
12 union all
13 select 1, 'DJ', 2200, to_date('15-MAY-05', 'dd-mon-rr') from dual
14 union all
15 select 2, 'VJ', 9800, to_date('12-APR-06', 'dd-mon-rr') from dual
16 union all
17 select 2, 'VJ', 7800, to_date('27-MAR-06', 'dd-mon-rr') from dual
18 union all
19 select 2, 'VJ', 7200, to_date('28-MAR-06', 'dd-mon-rr') from dual
20 )
21 group by empno, ename
22 /
EMPNO EN MAX_SAL MAX_DATE MIN_SAL MIN_DATE
1 DJ 8900 14-MAY-05 2200 15-MAY-05
2 VJ 9800 12-APR-06 7200 28-MAR-06Rgds. -
Finding the Text of SQL Query causing Full Table Scans
Hi,
does anyone have a sql script, that shows the complete sql text of queries that have caused a full table scan?
Please also let me know as to how soon this script needs to be run, in the sense does it work only while the query is running or would it work once it completes (if so is there a valid duration, such as until next restart, etc.)
Your help is appreciated.
Thx,
MayuranFinding the Text of SQL Query Causing Full Table Scan
-
Can't write right sql query by two tables
Hello
Everyone,
I am trying to get a sql query by two tables,
table:container
<pre class="jive-pre">
from_dest_id number
ship_from_desc varchar
to_dest_id number
</pre>
table: label_fromat (changeless)
<pre class="jive-pre">
SORT_ORDER number
PREFIX varchar2
VARIABLE_NAME varchar2
SUFFIX varchar2
LF_COMMENT varchar2
</pre>
the sql which i need is
a. table CONTAINER 's each column should have LABLE_FORMAT 's PREFIX before and SUFFIX back ,and these columns is connected
example : the query output should be like this :
<pre class="jive-pre">
PREFIX||from_dest_id||SUFFIX ||PREFIX||ship_from_desc||SUFFIX ||PREFIX|| to_dest_id||SUFFIX
</pre>
every PREFIX and SUFFIX are come from LABEL_FORMAT's column VARIABLE_NAME (they are different)
column SORT_ORDER decide the sequence, for the example above: Column from_dest_id order is 1, ship_from_desc is 2,to_dest_id is 3
b. table LABEL_FORMAT's column VARIABLE_NAME have values ('from_dest_id','ship_from_desc','to_dest_id')
If table CONTAINER only have one record i can do it myself,
But actually it is more than one record,I do not know how to do
May be this should be used PL/SQL,or a Function ,Cursor ,Procedure
I am not good at these
Any tips will be very helpful for me
Thanks
SavenHi, Saven,
Presenting data from multiple rows as a single string is called String Aggregation . This page:
http://www.oracle-base.com/articles/10g/StringAggregationTechniques.php
shows many ways to do it, suited to different requirements, and different versions of Oracle.
In Oracle 10 (and up) you can do this:
SELECT REPLACE ( SYS_CONNECT_BY_PATH ( f.prefix || ' '
|| CASE f.variable_name
WHEN 'FROM_DEST_ID'
THEN from_dest_id
WHEN 'SHIP_FROM_DESC'
THEN ship_from_desc
WHEN 'TO_DEST_ID'
THEN to_dest_id
END
|| ' '
|| f.suffix
, '~?'
, '~?'
) AS output_txt
FROM container c
CROSS JOIN label_format f
WHERE CONNECT_BY_ISLEAF = 1
START WITH f.sort_order = 1
CONNECT BY f.sort_order = PRIOR f.sort_order + 1
AND c.from_dest_id = PRIOR c.from_dest_id
saven wrote:If table CONTAINER only have one record i can do it myself,
But actually it is more than one record,I do not know how to do In that case, why did you post an example that only has one row in container?
The query above assumes
something in container (I used from_dest_id in the example above) is unique,
you don't mind having a space after prefix and before from_dest_id,
you want one row of output for every row in container, and
you can identify some string ('~?' in the example above) that never occurs in the concatenated data. -
Using sql query as a table name
hello,
I have a table(say table1) which is storing the names of some other tables. I want to access the name of a table from table1 using sql query and then use the result of this query as the table name to access the data from
retrieved table name. How can I do this ?
ex:
select * from (select tablename from table1 where tableid='1');
I want to do something likw this. How can I do this?I want to access the name of a table from table1 using sql query and then use the result of this query as the table name to access the data from retrieved table name. How can I do this ?e.g. like this:
SQL> with table1 as (
select 'emp' tablename from dual
select extractvalue(x.column_value, 'ROW/ENAME') ename
from table1, xmltable('ROWSET/ROW' passing dbms_xmlgen.getxmltype('select * from ' || tablename)) x
ENAME
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS
JAMES
FORD
MILLER
14 rows selected. -
SQL Query Template to a different schema
Hi all
I am on MII 12.2, connecting to Oracle through a data source which references user/schema "Foo"
I would like to perform queries involving tables from schema "Bar" .
As a consequence, when I need to access Bar tables I must reference them like "Foo.<TableName>"
If I use an SQL query with mode Command I can freely write the prefix but no return is allowed
If I use mode = FixedQuery(With Output) I can't prefix "Foo." because the editor prevents me from freely entering SQL code
How can I do this? Thanks regards
VincenzoThanks for your reply!
Actually there is a primary key, but Streams seems to ignore it. I've also tried the SET_KEY_COLUMNS way plus supplementary logging on the source DB, but this didn't help at all. I think this is happenening because the tables are not in the TEST_HQ schema, there are only synonyms to the real tables contained in TEST_CO.
Is there any other easy way to get Streams working between two different schemas?
Thanks again for your help!!
Max -
Hi,
How to find display the o/p like manager name under dependent employess same like parent child relation ship on noraml emp table:
sample o/p:
name job
xx manger
yy sales
yy1 sales
aa manager
rr marketing
rr1 marketing
Thanks921306 wrote:
so like this i need parent child relationship between the manager under employees....So join the parent entity with the child entity to create the parent-child relationship.
As both entities are in the same table, this means joining the table to itself. E.g.
SQL> select
2 child.ename as CHILD,
3 child.job as CHILD_JOB,
4 nvl(parent.ename,'<none>') as PARENT,
5 parent.job as PARENT_JOB
6 from emp parent,
7 emp child
8 where child.mgr = parent.empno (+)
9 /
CHILD CHILD_JOB PARENT PARENT_JO
FORD ANALYST JONES MANAGER
SCOTT ANALYST JONES MANAGER
JAMES CLERK BLAKE MANAGER
TURNER SALESMAN BLAKE MANAGER
MARTIN SALESMAN BLAKE MANAGER
WARD SALESMAN BLAKE MANAGER
ALLEN SALESMAN BLAKE MANAGER
MILLER CLERK CLARK MANAGER
ADAMS CLERK SCOTT ANALYST
CLARK MANAGER KING PRESIDENT
BLAKE MANAGER KING PRESIDENT
JONES MANAGER KING PRESIDENT
SMITH CLERK FORD ANALYST
KING PRESIDENT <none>
14 rows selected.
SQL> The basic concept is easy - define the parent entity, define the child entity, join the parent to the child.
If some entities will not have parents (root entities), then an outer join is needed from the child entity to the parent entity.
Simply because both entities are in the same table, does not change the logic or approach. It is perfectly valid to self-join a table. -
How to get save result from EXECUTE from a dynamic SQL query in another table?
Hi everyone,
I have this query:
declare @query varchar(max) = ''
declare @par varchar(10)
SELECT @par = col1 FROM Set
declare @region varchar(50)
SELECT @region = Region FROM Customer
declare @key int
SELECT @key = CustomerKey FROM Customer
SET @query = 'SELECT CustomerKey FROM Customer where ' + @par + ' = '+ @key+ ' '
EXECUTE (@query)
With this query I want get col1 from SET and compare it to the column Region from Customer. I would like to get the matching CustomerKey for it.
After execution it says commands are executed successfully. But I want to save the result from @query in another table. I looked it up and most people say to use sp_executesql. I tried a few constructions as sampled and I would always get this error:
Msg 214, Level 16, State 2, Procedure sp_executesql, Line 12
Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'.
So the output should be a list of CustomerKeys in another table.
How can I save the results from EXECUTE into a variable? Then I assume I can INSERT INTO - SELECT in another table.
ThanksCREATE TABLE Customer
(CustomerKey INT , Name NVARCHAR(100));
GO
INSERT dbo.Customer
VALUES ( 1, N'Sam' )
GO
DECLARE @query nvarchar(max) = ''
declare @par varchar(10) = 'Name',
@key varchar(10) = 'Sam'
CREATE TABLE #temp ( CustomerKey INT );
SET @query =
insert #temp
SELECT CustomerKey
FROM Customer
where ' + @par + ' = '''+ @key+ ''' '
PRINT @query
EXEC sp_executesql @query
SELECT *
FROM #temp
DROP TABLE #temp;
DROP TABLE dbo.Customer
Cheers,
Saeid Hasani
Database Consultant
Please feel free to contact me at [email protected] as well as on Twitter and Facebook.
[My Writings on TechNet Wiki] [T-SQL Blog] [Curah!]
[Twitter] [Facebook] [Email] -
Error while executing SQL query -' Must Specify Table to select from'
Hi all,
While executing query using query generator
it shows error message
[Microsoft][SQL Native Client][SQL Server]Must specify table to select from.
2). [Microsoft][SQL Nativ
SELECT T1.ItemCode, T1.Dscription AS 'Item Description', T1.Quantity, T1.Price, T1.LineTotal,
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=-90 AND T1.LineNum=T2.LineNum) as 'BEDAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=-60 AND T1.LineNum=T2.LineNum) as 'ECSAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=7 AND T1.LineNum=T2.LineNum) as 'HECSAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=1 AND T1.LineNum=T2.LineNum) as 'VATAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=4 AND T1.LineNum=T2.LineNum) as 'CSTAmt'
FROM dbo.[OPCH] T0 INNER JOIN PCH1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN PCH4 T2 ON T2.DocEntry=T0.DocEntry
WHERE T0.DocDate >='[%0]' AND T0.DocDate <='[%1]' AND T0.DocType = 'I'
GROUP BY T1.ItemCode,T1.Dscription,T1.Quantity, T1.Price, T1.LineTotal,T0.DocEntry,T1.DocEntry,T1.LineNum,T2.LineNum
It's executing fine in MS SQL Server Studio Management.
Please give y'r ideas to solve the problem.
Jeyakanthantry this, it works fine in my B1:
SELECT T1.ItemCode, T1.Dscription AS 'Item Description', T1.Quantity, T1.Price, T1.LineTotal,
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=-90 AND T1.LineNum=T2.LineNum) as 'BEDAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=-60 AND T1.LineNum=T2.LineNum) as 'ECSAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=7 AND T1.LineNum=T2.LineNum) as 'HECSAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=1 AND T1.LineNum=T2.LineNum) as 'VATAmt',
(Select SUM(T2.TaxSum) From PCH4 T2 Where T0.DocEntry=T2.DocEntry AND T2.staType=4 AND T1.LineNum=T2.LineNum) as 'CSTAmt'
FROM dbo.OPCH T0 INNER JOIN PCH1 T1 ON T0.DocEntry = T1.DocEntry INNER JOIN PCH4 T2 ON T2.DocEntry=T0.DocEntry
WHERE T0.DocDate >='[%0]' AND T0.DocDate <='[%1]' AND T0.DocType = 'I'
GROUP BY T1.ItemCode,T1.Dscription,T1.Quantity, T1.Price, T1.LineTotal,T0.DocEntry,T1.DocEntry,T1.LineNum,T2.LineNum
B1 don't like brackets!
Regards -
Build a sql query fro different table and insert into a table
Hi I have a requirement ,
i have some table 1 table which holds rules which rules i have to apply on the sql query
2 table will hold table name and column name and transformation
with these help of 2 tables i want to build a sql quey and the sql query need to be insert into another table.Hi Karthick,
I am not going to build Dynamic Data Model.
i already have table 1 contains rules let's say COUNT,
and another table contain source table name , column name , Target table name, Source Table name like that
so with the help of these 2 tables i want to build Sql query and going to insert into 3rd table. -
Creating sql query using 3 tables
There is database (supposed to be relational but it is not) and
I cannot change the tables and it is very difficult to create SQL query.
Please, help!
First table T1
a1 char 20
time timestamp
a2 char 7 (the same as t2.a2 when is trimmed)
a3 number 5,0
a4 number 8,4
a5 number 7,3
Second table T2
a2 char 15
b1 number 1,0
b2 char 1,0
b3 char 4
a3 number 5,0
Third table T3
b3 char 4
c1 char 4
c2 number 7,3
c3 number 8,4
So, I need to create query (is it possible at all!?) from those 3 tables (a1, a2, b1,b2,b3, a4, a5, c2,c3
where time is within interval (from, to), a3 in interval (1,2,3,4), t2.b3=t3.b3, t1.a2=t2.a2
group by or sorted by a1, then, a2.
Any suggestion is welcome!
Thanks!
By the way, I will use this query in Crystal Reports.As I already mentioned, I received another conditions for the query, and when I create a new one, I
First table T1
a1 number 5,0
a2 char 7 (the same as t2.a2 when is trimmed)
a3 number 8,4
a4 number 7,3
a_time timestamp
Second table T2
a2 char 15
b1 number 1,0
b2 char 1,0
b3 char 4
b4 char 4
Third table T3
c1 char 4
c2 number 7,3
c3 number 8,4
b3 char 4
where if c1='MIN' c2, c3 return min values,
and if c1='MAX' c2,c3 return max values
SQL query:
select t1.a1, t1.a2, t2.b1, t2.b2, t2.b3, t1.a3, t1.a4, t3.c1,
t3.c2, t3.c3, t2.b4
from t1, t2, t3
where (TRIM(t1.a2)=TRIM(t2.a2)
and t1.a1=19
and ((to_char(t1.a_time, 'YYYY-MM-DD') >= '2006-03-15')
and (to_char(t1.a_time, 'YYYY-MM-DD') <= '2006-03-16')))
and t3.b3=t2.b3)
order by t1.a_time
Result set:
a1, a2, b1, b2, b3, a3, a4, c1('MAX'), c2', c3', b4
a1, a2, b1, b2, b3, a3, a4, c1('MIN'), c2", c3", b4
So when I executed SQL query it returns 2 rows for the same a2.
I want to get 1 row for each a2 together with c3 (c4) min and c3 (c4) max values.
How to name columns for c2 min and c2 max (the same for c3) in order to retreive 1 row per a2 value, something like this:
a1, a2, b1, b2, b3, a3, a4, c2min, c2max, c3min, c3max, b4
Thanks -
How to return in pl/sql the tuples of an sql query comming several tables
I have a select query whose result comes from several tables. The question is how to return the tuples of the select query using a pl/sql function. In othe words, is it possible to define a construct structure to store the values of sql query and return that construct. if yes how to define such a construct where its elements comming from several tables.
I appreciate very much ur helpThe way to return a resultset from a function is with a cursor variable. The lazy of doing this is using a weakly-typed ref cursor (in 9i use the predefined SYS_REFCURSOR).
Cheers, APC -
Get column names into a VB program, for an SQL query that joins tables
use [mydatabase]
select * from InvNum inum
left join _btblInvoiceLines ilin
on inum.autoindex = ilin.iinvoiceid
left join stkitem s
on ilin.istockcodeid = s.stocklink where InvNumber = 'IVQ0834' or InvNumber = 'IVQ0835'
I need to get out the column names in a VB program in the same order they would appear in the SQL query above...
I want to use something like:
select column_name from information_schema.columns where TABLE_NAME = ....
except there are several tables involved above so I dont know the format!If you execute the query in your program using the SqlDataReader.ExecuteReader method, the column names will be available via the GetName method of the returned reader. But note that your query may return multiple columns with the same name.
Dim reader As SqlDataReader = command.ExecuteReader()
For x = 0 To reader.FieldCount - 1
Console.WriteLine(reader.GetName(x))
Next x
Dan Guzman, SQL Server MVP, http://www.dbdelta.com -
Dear All,
I would like to know. Can I create af:TreeTable with SQL Query without using Entity Object because of the Database allow to use only Query view object. Please show to me the ways how to tackle in this scenario.
Regards
KThere some discussion going on here.
i will suggest you the same.
Is it possible to create a multi-level tree table based on a single VO ? -
Sql query across multiple tables ina database
I have 3 MS Access tables in database that are linked by keyed fields in the table. Is there a way to fetch only certain records that match a criteria across all three of these tables using the database connectivity toolset VIs?
Thanks. I am trying to mechanize/run an SQL query like this
SELECT Code_Type.Code_NUM, Code_Type.Code_Word, Word_Type.Parm_Label, Word_Type.Word_Sequence, Word_Type.Num_Words, Parameter_Label.Parm_Label, Parameter_Label.Parm_Name, Parameter_Label.Num_Bits, Parameter_Label.Num_Bits
FROM (Code_Type INNER JOIN Word_Type ON Code_Type.Code_Word = Word_Type.Code_Word) INNER JOIN Parameter_Label ON Word_Type.Parm_Label = Parameter_Label.Parm_Label;
while using the VIs in the database connectivity toolset. How do I code this using these VIs? I dont see an example of a straight SQL string like this being able to be put into the VIs.
Maybe you are looking for
-
I use my iPod as a portable storage device for avi files, but I cannot seem to delete one of the files. There was an error when I captured this file live via firewire, so it has a filename but its size is 0kb. After going to My Computer, Drive F:, I
-
Lightroom 2 crashes need help.
I just imported some 1DsMk3 files and after the import Lightroom 2 crashed. Now I started again and after a few seconds it crashes again. I tried different libaries but they are all crashing now. System: Windows Vista 64 3,2Ghz Intel 8GB Memory 2*150
-
Problems with installing coldfusion mx and setting up CF for home practice
problems with installing coldfusion mx: hello, i have some books of cf. i need to start on my tutorials however, they said the prereq is mx server home site, 1. i did download mx 7 and chose mx developer edition. my problem is that when it is self co
-
Can I close the browser window when I run a form?
Hi, I'm running forms using SeparateFrame=TRUE, but the browser windows remains in background, could I close it before exiting the form? thanks
-
What printer/fax/scanner is best from HP?
mainly to be used as a color scanner and to print coupons.