Solved

Selecting multiple rows which meet condition  oracle 9 sql

Posted on 2008-11-03
3
444 Views
Last Modified: 2013-12-19
Please see the attached which displays a) the current output and b) the desired output.

The data is looking at a specific question and answers given to the question in an electronic form for three different clients. This particular question is looking at the ethnicity recorded for a client. Each answer is recorded in 4 pieces of data:

CAT_DESC
START_DATE
END_DATE
NOTES

Each answer may have multiple instances of the above data (see client_id 202579), but the start and end dates of the categories cannot overlap.

Id like the output to only list open categories and the associated start date and notes, i.e. where there is no end date. Any help with this is appreciated.
output-example.xls
0
Comment
Question by:tonMachine100
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 29

Expert Comment

by:MikeOM_DBA
ID: 22867785

Try something like this:

Select * From Mytable A
 Where Exists (
 Select Null From Mytable B
  Where B.Qst_Type              = A.Qst_Type
    And B.Qst_Code              = A.Qst_Code
    And B.Qst_Id                = A.Qst_Id
    And B.Ans_Qst_Code          = A.Ans_Qst_Code
    And B.Client_Id             = A.Client_Id
    And B.Ans_Id                = A.Ans_Id
    And B.Avd_Seq               = A.Avd_Seq 
    And B.Anv_Name              = 'End_Date'
    And B.Answer Is Null        = A.Answer Is Null
/

Open in new window

0
 
LVL 29

Accepted Solution

by:
MikeOM_DBA earned 400 total points
ID: 22868006
Ooops, typo:

Select * From Mytable A
 Where Exists (
 Select Null From Mytable B
  Where B.Qst_Type              = A.Qst_Type
    And B.Qst_Code              = A.Qst_Code
    And B.Qst_Id                = A.Qst_Id
    And B.Ans_Qst_Code          = A.Ans_Qst_Code
    And B.Client_Id             = A.Client_Id
    And B.Ans_Id                = A.Ans_Id
    And B.Avd_Seq               = A.Avd_Seq 
    And B.Anv_Name              = 'END_DATE'
    And B.Answer Is Null
/

Open in new window

0
 

Author Closing Comment

by:tonMachine100
ID: 31512642
thats spot on. thanks for your help!
0

Featured Post

Resolve Critical IT Incidents Fast

If your data, services or processes become compromised, your organization can suffer damage in just minutes and how fast you communicate during a major IT incident is everything. Learn how to immediately identify incidents & best practices to resolve them quickly and effectively.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Configuring and using Oracle Database Gateway for ODBC Introduction First, a brief summary of what a Database Gateway is.  A Gateway is a set of driver agents and configurations that allow an Oracle database to communicate with other platforms…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
This video shows how to copy a database user from one database to another user DBMS_METADATA.  It also shows how to copy a user's permissions and discusses password hash differences between Oracle 10g and 11g.
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question