Select query on emp table
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
Thanks
921306 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.
Similar Messages
-
Creating SELECT query between 3 tables
Hi there,
Im trying to create a SELECT query between 3 tables and it is driving me round the bend.
I have 3 tables connected together which are:
MODUL
modulid
modulname
modulevel
STUDENT
studentid
surname
inits
s e x
phone
email
logon
STUDREGOCCUR
modulid
acyear
semester
occletter
studentid
result
I want to select the fields surname, inits, studentid from the STUDENT table, modulname from the MODUL table and result from my STUDREGOCCUR table that is NOT NULL.
I have tried SELECT STUDENT.STUDENTID, STUDENT.INITS, STUDENT.SURNAME, MODUL.MODULNAME, STUDREGOCCUR.RESULT WHERE STUDREGOCCUR.RESULT IS NOT NULL;
I have also tried many other ways and done research hwich hasnt really helped me unfortunately.
Im quite new to SELECT queries and im not sure where im going wrong, i would greatly appreciate if someone could help me solve my problem.
Thanks for the help :)
Edited by: user633643 on 06-Dec-2008 08:09If you want data from multiple tables you would need to perform a join. The general form would be:
select t1.cola, t2.col2, t3.col.x
from table_a a, table_b b, table_c c
where a.key = b.key
and b.key = c.key
or perhaps c relates back directly to a so it is a.key = c.key where key can be any column whose value is equilivent in what it represents to the value it is being compared to, that is, student_number = student_number or the columns regardless of name are both building numbers, room numbers, etc ....
This is not your exact solution but it should help.
HTH -- Mark D Powell -- -
Select query on a table with 13 million of rows
Hi guys,
I have been trying to perform a select query on a table which has 13 millions of entries however it took around 58 min to complete.
The table has 8 columns with 4 Primary keys looks like below:
(PK) SegmentID > INT
(PK) IPAddress > VARCHAR (45)
MAC Address > VARCHAR (45)
(PK) Application Name > VARCHAR (45)
Total Bytes > INT
Dates > VARCHAR (45)
Times > VARCHAR (45)
(PK) DateTime > DATETIME
The sql query format is :
select ipaddress, macaddress, sum(totalbytes), applicationname , dates,
times from appstat where segmentid = 1 and datetime between '2011-01-03
15:00:00.0' and '2011-01-04 15:00:00.0' group by ipaddress,
applicationname order by applicationname, sum(totalbytes) desc
Is there a way I can improve this query to be faster (through my.conf or any other method)?
Any feedback is welcomed.
Thank you.
MusTolls wrote:
What db is this?
You never said.
Anyway, it looks like it's using the Primary Key to find the correct rows.
Is that the correct number of rows returned?
5 million?
Sorted?I am using MySQL. By the way, the query time has been much more faster (22 sec) after I changed the configuration file (based on my-huge.cnf).
The number of rows returned is 7999 Rows
This is some portion of the my.cnf
# The MySQL server
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
skip-locking
key_buffer = 800M
max_allowed_packet = 1M
table_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
log = /var/log/mysql.log
log-slow-queries = /var/log/mysqld.slow.log
long_query_time=10
# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 6
Is there anything else I need to tune so it can be faster ?
Thanks a bunch.
Edited by: user578505 on Jan 17, 2011 6:47 PM -
Is it worth using select query on infotype tables
Hi Experts,
I might be posting in the wrong column, but i just need to know is it worth using a select query on Infotype tables (PAxxxx)?? or should we prefer using the function modules for data fetching?
If select is not suggested, what is the reason for that?
Rgds
PrateekHi ,
Its not said that u cant write select on PAXXXX tables . Yes of couse LDB are there to fetch the data but it depends on
the requirement when to write a select and when to consider using in LDB .
Generally when you are looking at say 8 to 10 tables of infotypes with free selection , then LDB is suggested to fetch the data .
if you are looking to fetch the data for say some tables for a restricted selection (where clause) then select is used .
If i want to write a program using select only then fetching data from infotypes tables for large no of records will lead to
more time consumption which becomes easier in LDB as they are fetched in hierarchy level based on keys .
Normally it will be a combination of LDB and select querys in the development scenario
Br,
Vijay. -
CV04N takes long time to process select query on DRAT table
Hello Team,
While using CV04N to display DIR's, it takes long time to process select query on DRAT table. This query includes all the key fields. Any idea as to how to analyse this?
Thanks and best regards,
Bobby
Moderator message: please read the sticky threads of this forum, there is a lot of information on what you can do.
Edited by: Thomas Zloch on Feb 24, 2012Be aware that XP takes approx 1gb of your RAM leaving you with 1gb for whatever else is running. MS Outlook is also a memory hog.
To check Virtual Memory Settings:
Control Panel -> System
System Properties -> Advanced Tab -> Performance Settings
Performance Options -> Adavanced Tab - Virtual Memory section
Virtual Memory -
what are
* Initial Size
* Maximum Size
In a presentation at one of the Hyperion conferences years ago, Mark Ostroff suggested that the initial be set to the same as Max. (Max is typically 2x physical RAM)
These changes may provide some improvement. -
Hello All,
I am writing select query on TCURR table , but unable to get the values from table though i cansee the entries in table for the same condition as i provided int he program .
Is there an peculiar reason for the sme .
MY query is as follows.
SELECT * FROM tcurr INTO TABLE g_t_tcurr
WHERE kurst = 'M' AND fcurr = g_f_waers
AND tcurr = 'AUD'
AND gdatu LE l_f_datum (MKPF-BUDAT).
Any help is appreciated .
ThanksHi,
Please check the datatype and try again...
data:
DATC(8) TYPE C,
GDATU_OLD(8) TYPE C.
*exc_type = 'M'.
SELECT * FROM tcurf into table g_t_tcurr
CLIENT SPECIFIED
WHERE kurst = exc_type
AND fcurr = for_curr
AND tcurr = loc_curr
AND gdatu GE datc
AND mandt = mandt
ORDER BY PRIMARY KEY.
FM: CONVERT_TO_LOCAL_CURRENCY_N can be used to convert the amt from local currency to Foreign currency.
Regds
Parvathi -
How to insert the select query result into table?
How to insert the select query result into table?
SELECT top 20 creation_time
,last_execution_time
,total_physical_reads
,total_logical_reads
,total_logical_writes
, execution_count
, total_worker_time
, total_elapsed_time
, total_elapsed_time / execution_count avg_elapsed_time
,SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2) + 1) AS statement_text
FROM sys.dm_exec_query_stats AS qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
ORDER BY total_elapsed_time / execution_count DESC;
Thanks,
Tirumala1. SELECT INTO
Below method will create table when data is inserted from one table to another table. Its useful when you need exactly same datatype as source table.
Use AdventureWorks2008R2;
Go
---Insert data using SELECT INTO
SELECT AddressLine1, City
INTO BothellAddresses
FROM Person.Address
where City = 'Bothell';
GO
---VERIFY DATA
Select AddressLine1, City
FROM BothellAddresses
---DROP TABLE
DROP TABLE BothellAddresses
GO
2. INSERT INTO SELECT
Below method will need table to be created prior to inserting data. Its really useful when table is already created and you want insert data from
another table.
Use AdventureWorks2008R2;
Go
---Create Table
CREATE TABLE BothellAddresses (AddressLine1 NVARCHAR(60), City NVARCHAR(30))
---Insert into above table using SELECT
INSERT INTO BothellAddresses(AddressLine1, City)
SELECT AddressLine1, City
FROM Person.Address
where City = 'Bothell';
---VERIFY DATA
Select AddressLine1, City
FROM BothellAddresses
---DROP TABLE
DROP TABLE BothellAddresses
GO
Regards,
Vishal Patel
Blog: http://vspatel.co.uk
Site: http://lehrity.com -
Select Query, Showing What Tables a Specific User Key Can Be Found?
I need to have query or Filter to show me all data elements where user_key='001' is found in database.
Basically what tables would I find user_key='001'
Select * ______________ where user_key='001';
Need help on what to put in the above... because I want to search all database and Not specific table.
Thanks.
JDog29Hi,
Here's a SQL*Plus solution.
You run this script:
-- Find_Number.sql -- Find all NUMBER columns where &1 occurs
-- FIND_NUMBER finds which number columns in the database
-- contain a given value, such as 12345
-- find_number writes and executes a script called find_number_1.sql,
-- which contains rows like
-- @@find_number_sub SCOTT EMP EMPNO 12345
-- When run, this line will produce the output
-- SCOTT EMP EMPNO
-- if there is a row in scott.emp where empno=12345.
SET FEEDBACK OFF
SET LINESIZE 200
SET PAGESIZE 0
SET VERIFY OFF
DEFINE target_num = &1
DEFINE dir = o:\oradba\dbobj
SPOOL &dir\find_number_1.sql
PROMPT SPOOL &dir\find_number_&target_num..lst
PROMPT
SELECT '@@find_number_sub'
, owner
, table_name
, column_name
, &target_num
FROM all_tab_columns
WHERE data_type IN ('NUMBER')
AND owner IN ('SCOTT') -- If needed
-- AND ROWNUM <= 50 -- For testing
ORDER BY
owner
, table_name
, column_name
PROMPT
PROMPT SPOOL OFF
SPOOL OFF
@&dir\find_number_1On the same directory, you should have the following script:
-- Find_Number_sub.sql - See if any row of
-- table &1.&2 column &3 is equal to &4
-- If so, &1, &2 and &3 will be displayed
-- If not, nothing will be displayed
SELECT '&1' -- Owner
, '&2' -- Table name
, '&3' -- Column name
FROM dual
WHERE EXISTS
SELECT 0
FROM &1..&2
WHERE &3 = &4
; To search for columns containing the number 12345:
@find_number 12345A file called find_number_12345.lst, containing the results, will be produced. -
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 5000It 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. -
Dynamic Select Query including Dynamic Tables with For all Entries
Hello everyone,
I need to create a select query which involves using of Dynamic Tables.
Suppose I have a dynamic table <d1> which consist of let say 10 records.
Now i need to make a select query putting data into another dynamic table <d2>
CONCATENATE keyfield '=' '<d1>' INTO g_condition SEPARATED BY space.
CONCATENATE g_condition '-' keyfield INTO g_condition.
SELECT * FROM (wa_all_tables-name) INTO CORRESPONDING FIELDS OF TABLE <d1>
FOR ALL ENTRIES IN <d1>
WHERE (g_condition).
But it is giving dump.
Please help me on this....Short text
A condition specified at runtime has an unexpected format.
What happened?
Error in the ABAP Application Program
The current ABAP program "ZNG_CUSTOMWRITE" had to be terminated because it has
come across a statement that unfortunately cannot be executed.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_DYNAMIC_OSQL_SEMANTICS', was
not caught in
procedure "WRITE_ARCHIVE_PROD" "(FORM)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
The current ABAP program has tried to execute an Open SQL statement
which contains a WHERE, ON or HAVING condition with a dynamic part.
The part of the WHERE, ON or HAVING condition specified at runtime in
a field or an internal table, contains the invalid value "ZCOURIER-ZCOURIERID".
CONCATENATE keyfield '=' g_header INTO g_condition SEPARATED BY space.
CONCATENATE g_condition '-' keyfield INTO g_condition.
SELECT * FROM (wa_all_tables-name) INTO CORRESPONDING FIELDS OF TABLE <dyn_table1>
FOR ALL ENTRIES IN <dyn_table>
WHERE (g_condition). -
OPtimizing Performance for Select query on NAST table
Hi All,
We are fetching a single record from NAST table. The table has around 10 Million Entries.
The Select Query takes around 5-6 minutes to return.
We are not using the Primary key completely. We are using only one field of the primary key.
The field is also a part of the Index but we are not using all the fields in the index as well.
We need to bring down the time. What can be the solution? I cant see any changes to the code, since its a single query and we cant use the Entire Primary key.
Would creating an Index on the fields that we are concerned with help in this regard.
Open to all solutions.
Thanks in Advance,
ImranHi,
Please check this thread
http://sap.ittoolbox.com/documents/popular-q-and-a/specifying-the-index-to-be-used-2462
For creating another secondary index in NAST whether basis will approve for this?
aRs -
OPtimizing Performance for Select query on huge table
Hi All,
We are fetching a single record from NAST table. The table has around 10 Million Entries.
The Select Query takes around 5-6 minutes to return.
We are not using the Primary key completely. We are using only one field of the primary key.
The field is also a part of the Index but we are not using all the fields in the index as well.
We need to bring down the time. What can be the solution? I cant see any changes to the code, since its a single query and we cant use the Entire Primary key.
Would creating an Index on the fields that we are concerned with help in this regard.
Open to all solutions.
Thanks in Advance,
ImranThere are sometimes tricks you can use to get it to use the index more efficiently. If you let us know which fields you are using in the SELECT (all of them actually), we might be able to help.
Or are you saying you can't change the code at all?
Please don't create duplicate posts though.
Rob
Message was edited by:
Rob Burbank -
ST05 Trace on a select query on BSEG table
hi all,
this is my select query on table BSEG table:
SELECT bukrs
belnr
gjahr
buzei
KOART
mwskz
kostl
lifnr
aufnr
werks
ebeln
txjcd
projk FROM bseg
INTO TABLE i_bseg
FOR ALL ENTRIES IN i_ad_tab
WHERE bukrs EQ i_ad_tab-bukrs AND
belnr EQ i_ad_tab-belnr AND
gjahr EQ i_ad_tab-gjahr.
when i m doing SQL trace ST05 on this query and in the detail statement showed the following query
SELECT
"MANDT" , "BUKRS" , "BELNR" , "GJAHR" , "PAGENO" , "TIMESTMP" ,
"PAGELG" , "VARDATA"
FROM
"RFBLG"
WHERE
"MANDT" = ? AND "BUKRS" = ? AND "BELNR" = ? AND "GJAHR" = ?
ORDER BY
"MANDT" , "BUKRS" , "BELNR" , "GJAHR" , "PAGENO"
what is RFBLG table in SE11, but could not find it.
what is RFBLG?also, the above select query giving me performance issues.. the "for all entries" clause is used as per norms...
please suggest a solution..hi
good
The famous BSEG table is a cluster table.
It is as was correctly stated part of the Accounting Document Segment. It is part of the Pool cluster RFBLG and lives in the package: FBAS (Financial accounting 'Basis').
You can't read a cluster table exactly the way you read a database (old speak, transparent table).
You can use a program to read called RFPPWF05
Note 435694: Display BSEG item by calling FB09D (modified FB09)
Other possiblity: Other possibility: CALL DIALOG 'RF_ZEILEN_ANZEIGE', but since this is a dialog I don't think this would work.
In any event go to FBAS Package (development class) to see your business objects, class library and functions.
you must use keyfields bukrs , belnr, gjahr
(so 1st select table bkpf) to select bseg.
or use secondary index tables:
bsas, bsis, bsik, bsak, bsid, bsad
Regards,
Raj. -
Select query on QALS table taking around 4 secs to fetch one record
Hi,
I have one select query that takes around 4 secs to fetch one record. I would like to know if there are any ways to reduce the time taken for this select.
SELECT
b~prueflos
b~matnr
b~lagortchrg
a~vdatum
a~kzart
a~zaehler
a~vcode
a~vezeiterf
FROM qals AS b LEFT OUTER JOIN qave AS a ON
bprueflos = aprueflos
INTO TABLE t_qals1
FOR ALL ENTRIES IN t_lgorts
WHERE matnr = t_lgorts-matnr
AND werk = t_lgorts-werks
AND lagortchrg = t_lgorts-lgort
AND stat35 = c_x
AND art IN (c_01,c_08).
When I took the SQL trace, here I found other details :
Column No.Of Distinct Records
MANDANT 2
MATNR 2.954
WERK 30
STAT34 2
HERKUNFT 5
Analyze Method Sample 114.654 Rows
Levels of B-Tree 2
Number of leaf blocks 1.126
Number of distinct keys 16.224
Average leaf blocks per key 1
Average data blocks per key 3
Clustering factor 61.610
Also note, This select query is using INDEX RANGE SCAN QALS~D.
All the suggestions are welcome
Regards,
VijayaHi Rob,
Its strange but, the table t_lgorts has only ONE record
MATNR = 000000000500003463
WERK = D133
LAGORTCHRG = 0001
I have also seen that for the above criteria the table QALS has 2266 records that satisfy this condition.
I am not sure..but if we write the above query as subquery instead of Outer join..will it improve the performance?
Will check it from my side too..
Regards,
Vijaya -
Select query to get table names
Hi,
Can i retrieve a table name from a select query if i know value of one of the columns in the table?
GlenCan't you take a look at the source code and see what table those values are coming from? That's likely the easiest solution.
Barring that, you could use dynamic SQL, but it's going to be awfully inefficient. Something like
FOR x IN (SELECT * FROM user_tab_cols WHERE data_type = 'VARCHAR2')
LOOP
EXECUTE IMMEDIATE
'SELECT COUNT(*) FROM ' || x.table_name ||
' WHERE ' || x.column_name || ' = <<literal value>>'
INTO l_cnt;
IF( l_cnt > 1 )
THEN
DBMS_OUTPUT.PUT_LINE( 'Found the value' );
END IF;
END LOOP;This assumes that you know at least what data type the value is stored in. It's also going to generate a tremendous number of full table scans, so it'll be slow as molasses on a system of any size.
Justin
Maybe you are looking for
-
Verify Disk results, confusing.. Can they be the cause of system lock ups?
I have been experiencing strange freezes on my Mac Pro 2008 system. My boot disk is a 50% full 128GB SSD from Crucial and is running beautifully fast however for the past couple of weeks my system often freezes for anything from 3 seconds to 30 secon
-
Printing photos with Color Laserjet CM1312. Need proper printing software.
I'm trying to print photos from my Color Laserjet CM1312 multi-function printer. I used to have a Photosmart inkjet, and tried to use the photo-printing softthat came with that printer, as I really like it. But that must have been designed just for i
-
Hi Guys, I have query on Planning Application. As per the requirement we are developing one Planning Application with 3 Plan Types. As of now we need only one Plan Type as per requirement but we are keeping two other Plan Types for future purpose. Bu
-
Everytime i try to update my iphone 3gs it downloads but then cancels halfway but not the full file
Everytime i try to update my iphone 3gs it downloads but then cancels halfway but not the full file. When i download 6.1.3 from various sites i receive an error (3194). I've been trying to troubleshoot it now for weeks. Also i can't copy songs music
-
Need help with the following condition code
Hi All, I am creating CreditMemo based on the open amount and I have option to create either up to 4 credit memo's or open amount is zero. When I create the CM initially then cmponum1 has to be updated in the table, for second CM cmponum2 has to be u