Unix Technical Forum

Messed Up Query

This is a discussion on Messed Up Query within the Oracle Miscellaneous forums, part of the Oracle Database category; --> Hi, I have this query: SELECT q10.q10_count, vi.mgr_flag,vi.inst_type,vi.inst_num,vi.inst_cst,v i.inst_zip,vi.inst_phone,vi.url,vi.turnover,vi.hol d_cnt, vi.date_,vi.inst_size,vi.inst_dchg, vh.ticker,vh.q0_shares,vh.q1_shares,vh.q0q1_grwth, vh.q0q1_dchg,vh.shares_out, mt.comp_name, sd.sector_name, p.closing FROM vinst vi, ...


Go Back   Unix Technical Forum > Database Server Software > Oracle Database > Oracle Miscellaneous

FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-29-2008, 09:28 PM
Mtek
 
Posts: n/a
Default Messed Up Query


Hi,

I have this query:

SELECT q10.q10_count,
vi.mgr_flag,vi.inst_type,vi.inst_num,vi.inst_cst,v i.inst_zip,vi.inst_phone,vi.url,vi.turnover,vi.hol d_cnt,
vi.date_,vi.inst_size,vi.inst_dchg,

vh.ticker,vh.q0_shares,vh.q1_shares,vh.q0q1_grwth, vh.q0q1_dchg,vh.shares_out,
mt.comp_name, sd.sector_name, p.closing
FROM vinst vi, vhold vh, master_table mt, stock_data sd, prices p,
(SELECT count(*) q10_count FROM vhold vh
WHERE q1_shares = 0 GROUP BY vh.ticker) q10
WHERE inst_name = 'Yacktman Fund'
AND vi.inst_num = vh.inst_num
AND vh.ticker = mt.ticker
AND mt.m_ticker = sd.m_ticker
AND mt.m_ticker = p.m_ticker;

Take a look at the inner query in the FROM clause:
(SELECT count(*) q10_count FROM vhold vh
WHERE q1_shares = 0 GROUP BY vh.ticker) q10

I basically need the same criteria applied as the outer query. Do I
have to re-list the criteria? I'll have to do that count for 5
fields. It will make this query WAY long.......

Thanks!

John


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 04-29-2008, 09:28 PM
Peter Nilsson
 
Posts: n/a
Default Re: Messed Up Query

Mtek wrote:
> Hi,
>
> I have this query:
>
> SELECT q10.q10_count,
> vi.mgr_flag,vi.inst_type,vi.inst_num,vi.inst_cst,v i.inst_zip,vi.inst_phone,vi.url,vi.turnover,vi.hol d_cnt,
> vi.date_,vi.inst_size,vi.inst_dchg,
>
> vh.ticker,vh.q0_shares,vh.q1_shares,vh.q0q1_grwth, vh.q0q1_dchg,vh.shares_out,
> mt.comp_name, sd.sector_name, p.closing
> FROM vinst vi, vhold vh, master_table mt, stock_data sd, prices p,
> (SELECT count(*) q10_count FROM vhold vh
> WHERE q1_shares = 0 GROUP BY vh.ticker) q10
> WHERE inst_name = 'Yacktman Fund'
> AND vi.inst_num = vh.inst_num
> AND vh.ticker = mt.ticker
> AND mt.m_ticker = sd.m_ticker
> AND mt.m_ticker = p.m_ticker;
>
> Take a look at the inner query in the FROM clause:
> (SELECT count(*) q10_count FROM vhold vh
> WHERE q1_shares = 0 GROUP BY vh.ticker) q10
>
> I basically need the same criteria applied as the outer query. Do I
> have to re-list the criteria? I'll have to do that count for 5
> fields. It will make this query WAY long.......


I can't tell for sure, but it sounds like you just need an analytical
function in the outer query...

count(*) over (partition by vh.ticker)

....or a selective count...

sum(decode(vh.q1_shares, 0, 1, 0)) over (partition by vh.ticker)

--
Peter
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 04-29-2008, 09:28 PM
Robert Klemme
 
Posts: n/a
Default Re: Messed Up Query

On Apr 28, 7:51 pm, Mtek <m...@mtekusa.com> wrote:
> Hi,
>
> I have this query:
>
> SELECT q10.q10_count,
> vi.mgr_flag,vi.inst_type,vi.inst_num,vi.inst_cst,v i.inst_zip,vi.inst_phone,vi.url,vi.turnover,vi.hol d_cnt,
> vi.date_,vi.inst_size,vi.inst_dchg,
>
> vh.ticker,vh.q0_shares,vh.q1_shares,vh.q0q1_grwth, vh.q0q1_dchg,vh.shares_out,
> mt.comp_name, sd.sector_name, p.closing
> FROM vinst vi, vhold vh, master_table mt, stock_data sd, prices p,
> (SELECT count(*) q10_count FROM vhold vh
> WHERE q1_shares = 0 GROUP BY vh.ticker) q10
> WHERE inst_name = 'Yacktman Fund'
> AND vi.inst_num = vh.inst_num
> AND vh.ticker = mt.ticker
> AND mt.m_ticker = sd.m_ticker
> AND mt.m_ticker = p.m_ticker;
>
> Take a look at the inner query in the FROM clause:
> (SELECT count(*) q10_count FROM vhold vh
> WHERE q1_shares = 0 GROUP BY vh.ticker) q10
>
> I basically need the same criteria applied as the outer query. Do I
> have to re-list the criteria? I'll have to do that count for 5
> fields. It will make this query WAY long.......


I don't see a join with q10. Is a cross join really what you intend?

robert
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 04-29-2008, 09:28 PM
Mtek
 
Posts: n/a
Default Re: Messed Up Query

On Apr 29, 4:18 am, Robert Klemme <shortcut...@googlemail.com> wrote:
> On Apr 28, 7:51 pm, Mtek <m...@mtekusa.com> wrote:
>
>
>
> > Hi,

>
> > I have this query:

>
> > SELECT q10.q10_count,
> > vi.mgr_flag,vi.inst_type,vi.inst_num,vi.inst_cst,v i.inst_zip,vi.inst_phone,vi.url,vi.turnover,vi.hol d_cnt,
> > vi.date_,vi.inst_size,vi.inst_dchg,

>
> > vh.ticker,vh.q0_shares,vh.q1_shares,vh.q0q1_grwth, vh.q0q1_dchg,vh.shares_out,
> > mt.comp_name, sd.sector_name, p.closing
> > FROM vinst vi, vhold vh, master_table mt, stock_data sd, prices p,
> > (SELECT count(*) q10_count FROM vhold vh
> > WHERE q1_shares = 0 GROUP BY vh.ticker) q10
> > WHERE inst_name = 'Yacktman Fund'
> > AND vi.inst_num = vh.inst_num
> > AND vh.ticker = mt.ticker
> > AND mt.m_ticker = sd.m_ticker
> > AND mt.m_ticker = p.m_ticker;

>
> > Take a look at the inner query in the FROM clause:
> > (SELECT count(*) q10_count FROM vhold vh
> > WHERE q1_shares = 0 GROUP BY vh.ticker) q10

>
> > I basically need the same criteria applied as the outer query. Do I
> > have to re-list the criteria? I'll have to do that count for 5
> > fields. It will make this query WAY long.......

>
> I don't see a join with q10. Is a cross join really what you intend?
>
> robert



Well, what I am trying to do is to select a bunch of data, then in the
same query, I want to do a count on a column with it;s own criteria
based on the results of the original select.

Does that make sense?

Can an OVER help me here? I'm trying to look at it and understand
it.......
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 04-29-2008, 09:28 PM
Mtek
 
Posts: n/a
Default Re: Messed Up Query

On Apr 29, 4:18 am, Robert Klemme <shortcut...@googlemail.com> wrote:
> On Apr 28, 7:51 pm, Mtek <m...@mtekusa.com> wrote:
>
>
>
> > Hi,

>
> > I have this query:

>
> > SELECT q10.q10_count,
> > vi.mgr_flag,vi.inst_type,vi.inst_num,vi.inst_cst,v i.inst_zip,vi.inst_phone,vi.url,vi.turnover,vi.hol d_cnt,
> > vi.date_,vi.inst_size,vi.inst_dchg,

>
> > vh.ticker,vh.q0_shares,vh.q1_shares,vh.q0q1_grwth, vh.q0q1_dchg,vh.shares_out,
> > mt.comp_name, sd.sector_name, p.closing
> > FROM vinst vi, vhold vh, master_table mt, stock_data sd, prices p,
> > (SELECT count(*) q10_count FROM vhold vh
> > WHERE q1_shares = 0 GROUP BY vh.ticker) q10
> > WHERE inst_name = 'Yacktman Fund'
> > AND vi.inst_num = vh.inst_num
> > AND vh.ticker = mt.ticker
> > AND mt.m_ticker = sd.m_ticker
> > AND mt.m_ticker = p.m_ticker;

>
> > Take a look at the inner query in the FROM clause:
> > (SELECT count(*) q10_count FROM vhold vh
> > WHERE q1_shares = 0 GROUP BY vh.ticker) q10

>
> > I basically need the same criteria applied as the outer query. Do I
> > have to re-list the criteria? I'll have to do that count for 5
> > fields. It will make this query WAY long.......

>
> I don't see a join with q10. Is a cross join really what you intend?
>
> robert



Well, I want to select a certain criteria from X number of tables. I
also want a COUNT of certain columns with their own critera. And, I'm
trying to put this all into one query.......

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #6 (permalink)  
Old 05-02-2008, 06:05 AM
Robert Klemme
 
Posts: n/a
Default Re: Messed Up Query

On 29.04.2008 14:51, Mtek wrote:
> On Apr 29, 4:18 am, Robert Klemme <shortcut...@googlemail.com> wrote:
>> On Apr 28, 7:51 pm, Mtek <m...@mtekusa.com> wrote:
>>
>>
>>
>>> Hi,
>>> I have this query:
>>> SELECT q10.q10_count,
>>> vi.mgr_flag,vi.inst_type,vi.inst_num,vi.inst_cst,v i.inst_zip,vi.inst_phone,vi.url,vi.turnover,vi.hol d_cnt,
>>> vi.date_,vi.inst_size,vi.inst_dchg,
>>> vh.ticker,vh.q0_shares,vh.q1_shares,vh.q0q1_grwth, vh.q0q1_dchg,vh.shares_out,
>>> mt.comp_name, sd.sector_name, p.closing
>>> FROM vinst vi, vhold vh, master_table mt, stock_data sd, prices p,
>>> (SELECT count(*) q10_count FROM vhold vh
>>> WHERE q1_shares = 0 GROUP BY vh.ticker) q10
>>> WHERE inst_name = 'Yacktman Fund'
>>> AND vi.inst_num = vh.inst_num
>>> AND vh.ticker = mt.ticker
>>> AND mt.m_ticker = sd.m_ticker
>>> AND mt.m_ticker = p.m_ticker;
>>> Take a look at the inner query in the FROM clause:
>>> (SELECT count(*) q10_count FROM vhold vh
>>> WHERE q1_shares = 0 GROUP BY vh.ticker) q10
>>> I basically need the same criteria applied as the outer query. Do I
>>> have to re-list the criteria? I'll have to do that count for 5
>>> fields. It will make this query WAY long.......

>> I don't see a join with q10. Is a cross join really what you intend?

>
> Well, what I am trying to do is to select a bunch of data, then in the
> same query, I want to do a count on a column with it;s own criteria
> based on the results of the original select.
>
> Does that make sense?


I'm afraid, no. Maybe I'm too tired right now but "select a bunch of
data" is not very precise. It is especially unclear to me whether you
need the "bunch" only for counting purposes or are interested in the
result as well.

Also, your remark "based on the results of the original select" might
indicate that you have a too procedural view of SQL.

> Can an OVER help me here? I'm trying to look at it and understand
> it.......


Maybe. Can you try to explain more elaborately what you have as input
and expect as output?

Kind regards

robert
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On
Forum Jump


All times are GMT. The time now is 07:08 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
www.UnixAdminTalk.com