Re: [SQL] Fetching BLOBs

2006-12-20 Thread Ragnar
On mið, 2006-12-20 at 08:55 +0530, Ashish Ahlawat wrote:

> I have a very intersting question to all of you. Pls help me to build
> this query, I want to fetch more that 70,000 BLOB from different
> customer servers. the issue is there are some BOLB files with common
> names on all servers. So I want merge these files into a single
> BLOB during  fetching data. I am able to fetch the  BLOB data from all
> cust servers but unfortunatelly it overwrite previous file. 
>  
> So pls provide any simple query format for the same, assuming two
> table tab1 & tab 2

a bit of friendly advice on how to ask on these lists:

I you do not get any useful replies to a question, you
should follow up with more details, more specific questions,
show what you have tried so far, and tell us in what way
that did not work.

It is unlikely that repeating the same question verbatim 
3 times in different threads, CC'd to some random list
users will give better results than the first posting did.

Remember that many of us are not native english speakers,
so describe your problem as clearly and precisely as possible.

For example, it is totaly unclear to me what your actual
problem is.

gnari



---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


[SQL] join/group/count query.

2006-12-20 Thread Gary Stainburn
Hi folks.  I have the following query which works for me at the moment.  
However, o_model refers to a table stock_models which has one record for each 
model type. At the moment if I another record to the stock_models I have to 
amend the select.  Is it possible to make this automatic by joining the 
stock_models data somehow?

select o_p_id as key, o_p_id as p_id, p_name, count(o_p_id) as total,
   count (case when o_model = 5 then 1 else NULL end) as KA,
   count (case when o_model = 10 then 1 else NULL end) as Focus,
   count (case when o_model = 13 then 1 else NULL end) as C_Max,
   count (case when o_model = 16 then 1 else NULL end) as S_Max,
   count (case when o_model = 20 then 1 else NULL end) as Fiesta,
   count (case when o_model = 25 then 1 else NULL end) as Fusion,
   count (case when o_model = 30 then 1 else NULL end) as Mondeo,
   count (case when o_model = 35 then 1 else NULL end) as Galaxy,
   count (case when o_model = 40 then 1 else NULL end) as Ranger,
   count (case when o_model = 50 then 1 else NULL end) as Connect,
   count (case when o_model = 60 then 1 else NULL end) as Transit,
   count (case when o_model = 70 then 1 else NULL end) as Fiesta_Van
   from order_details 
   where date_trunc('month',CURRENT_DATE) = date_trunc('month',o_ord_date)
   group by o_p_id, p_name;
-- 
Gary Stainburn
 
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000 

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [SQL] join/group/count query.

2006-12-20 Thread Ragnar
On mið, 2006-12-20 at 10:12 +, Gary Stainburn wrote:
> Hi folks.  I have the following query which works for me at the moment.  
> However, o_model refers to a table stock_models which has one record for each 
> model type. At the moment if I another record to the stock_models I have to 
> amend the select.  Is it possible to make this automatic by joining the 
> stock_models data somehow?
> 
> select o_p_id as key, o_p_id as p_id, p_name, count(o_p_id) as total,
>count (case when o_model = 5 then 1 else NULL end) as KA,
>count (case when o_model = 10 then 1 else NULL end) as Focus,
>count (case when o_model = 13 then 1 else NULL end) as C_Max,
>count (case when o_model = 16 then 1 else NULL end) as S_Max,
>count (case when o_model = 20 then 1 else NULL end) as Fiesta,
>count (case when o_model = 25 then 1 else NULL end) as Fusion,
>count (case when o_model = 30 then 1 else NULL end) as Mondeo,
>count (case when o_model = 35 then 1 else NULL end) as Galaxy,
>count (case when o_model = 40 then 1 else NULL end) as Ranger,
>count (case when o_model = 50 then 1 else NULL end) as Connect,
>count (case when o_model = 60 then 1 else NULL end) as Transit,
>count (case when o_model = 70 then 1 else NULL end) as Fiesta_Van
>from order_details 
>where date_trunc('month',CURRENT_DATE) = date_trunc('month',o_ord_date)
>group by o_p_id, p_name;

if I understand correctly, you want one column in your output, 
for each row in the table table stock_models

you can do this with the crosstabN function in the contrib 
module 'tablefunc', or by making your own procedural language
function.

gnari




---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
   choose an index scan if your joining column's datatypes do not
   match


Re: [SQL] Help with quotes in plpgsql

2006-12-20 Thread Richard Ray

It makes sense when ya'll explain it
It never sounds that good when I'm talkin to myself
That solves my problem but not my ignorance
I'm still curious about how would I properly quote

create or replace function test(integer) returns setof text as $$
declare
  a record;
begin
  select into a now() - interval '$1 day';
  return next a;
  return;
end
$$ language 'plpgsql';

I got the usage example for interval from 
http://www.postgresql.org/docs/8.1/interactive/functions-datetime.html


Thanks
Richard


On Tue, 19 Dec 2006, Tom Lane wrote:


"Hector Villarreal" <[EMAIL PROTECTED]> writes:

   select into a now() - ($1::text||'days')::interval;


People keep suggesting variants of that as ways to convert numeric
values to intervals, but it's really extremely bad practice.  Much
better is to use number-times-interval multiplication:

select into a now() - $1 * '1 day'::interval;

This is less typing, at least as easy to understand, more flexible
(you can use any scale factor you want), and considerably more
efficient.  The first way involves coercing the integer to text,
then text-concatenating that with a constant, then applying
interval_in which does a fairly nontrivial parsing process.
The second way is basically just a multiplication, because
'1 day'::interval is already a constant value of type interval.

regards, tom lane

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

   http://www.postgresql.org/about/donate



---(end of broadcast)---
TIP 9: In versions below 8.0, the planner will ignore your desire to
  choose an index scan if your joining column's datatypes do not
  match


Re: [SQL] Help with quotes in plpgsql

2006-12-20 Thread Richard Huxton

Richard Ray wrote:

It makes sense when ya'll explain it
It never sounds that good when I'm talkin to myself
That solves my problem but not my ignorance
I'm still curious about how would I properly quote

create or replace function test(integer) returns setof text as $$
declare
  a record;
begin
  select into a now() - interval '$1 day';

   

The basic mistake is that you're assuming strings interpolate variables. 
This isn't true in plpgsql, never has been and probably never will.


So you can't do:
  my_msg := 'Hello $1, how are you?';
You need:
  my_msg := 'Hello ' || $1 || ', how are you?';

Don't forget most variables don't have a leading dollar sign. Imagine 
you'd defined a variable called "day" in test() - you wouldn't expect 
that to be interpolated, would you?

--
  Richard Huxton
  Archonet Ltd

---(end of broadcast)---
TIP 7: You can help support the PostgreSQL project by donating at

   http://www.postgresql.org/about/donate


Re: [SQL] join/group/count query.

2006-12-20 Thread Erik Jones

Ragnar wrote:

On mið, 2006-12-20 at 10:12 +, Gary Stainburn wrote:
  
Hi folks.  I have the following query which works for me at the moment.  
However, o_model refers to a table stock_models which has one record for each 
model type. At the moment if I another record to the stock_models I have to 
amend the select.  Is it possible to make this automatic by joining the 
stock_models data somehow?


select o_p_id as key, o_p_id as p_id, p_name, count(o_p_id) as total,
   count (case when o_model = 5 then 1 else NULL end) as KA,
   count (case when o_model = 10 then 1 else NULL end) as Focus,
   count (case when o_model = 13 then 1 else NULL end) as C_Max,
   count (case when o_model = 16 then 1 else NULL end) as S_Max,
   count (case when o_model = 20 then 1 else NULL end) as Fiesta,
   count (case when o_model = 25 then 1 else NULL end) as Fusion,
   count (case when o_model = 30 then 1 else NULL end) as Mondeo,
   count (case when o_model = 35 then 1 else NULL end) as Galaxy,
   count (case when o_model = 40 then 1 else NULL end) as Ranger,
   count (case when o_model = 50 then 1 else NULL end) as Connect,
   count (case when o_model = 60 then 1 else NULL end) as Transit,
   count (case when o_model = 70 then 1 else NULL end) as Fiesta_Van
   from order_details 
   where date_trunc('month',CURRENT_DATE) = date_trunc('month',o_ord_date)

   group by o_p_id, p_name;



if I understand correctly, you want one column in your output, 
for each row in the table table stock_models


you can do this with the crosstabN function in the contrib 
module 'tablefunc', or by making your own procedural language

function.

gnari
  
And, I may be missing something, but I'm having a hard time 
understanding why you have all of those select columns  of  the form:


count (case when o_model = 5 then 1 else NULL end) as KA,

Considering that that can only return 1 or 0, the case statement would do.  Is 
it to avoid putting all of the column names in the group by clause?  That's 
hackish and is as much or more typing.

With regards to what you are actually trying to do, giving us your table 
definitions and what you are trying to achieve would help a lot more than just 
telling us the problem you are having.  The column names in your query are in 
no way descriptive and tell us nothing about your actual table structure.


--
erik jones <[EMAIL PROTECTED]>
software development
emma(r)


---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings


Re: [SQL] join/group/count query.

2006-12-20 Thread Gary Stainburn
>
> And, I may be missing something, but I'm having a hard time
> understanding why you have all of those select columns  of  the form:
>
> count (case when o_model = 5 then 1 else NULL end) as KA,
>
> Considering that that can only return 1 or 0, the case statement would do. 
> Is it to avoid putting all of the column names in the group by clause? 
> That's hackish and is as much or more typing.
>
> With regards to what you are actually trying to do, giving us your table
> definitions and what you are trying to achieve would help a lot more than
> just telling us the problem you are having.  The column names in your query
> are in no way descriptive and tell us nothing about your actual table
> structure.

The order_details view is a join of the orders table to the other tables.

The order table contains the orders. 

Each order has a business partner which is in a separate table. p_id is the 
key, p_name is the name of the partner.

Each order is for a single vehicle, which must be of a specific mode. The 
models are also stored in a separate table. o_model is the attribute in the 
orders table that contains the key to the models table.

The output I'm getting is below, which is what I want. For each partner I get 
a total followed by a breakdown by model the orders for the current month.

key|p_id|p_name  | total | ka | focus | c_max | s_max | fiesta | 
fusion | mondeo | galaxy | ranger | connect | transit | fiesta_van
---+++---++---+---+---++++++-+-+
 40|  40|rrr | 2 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |0
 30|  30|r Group Plc | 2 |0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0
 78|  78|r r | 2 |0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |0
 46|  46| )  | 3 |0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |0
  3|   3|e   | 8 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | 4 |0
  9|   9|eee | 3 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |0
 12|  12||13 |0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 5 | 6 |0
 10|  10|rr Motor| 7 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 5 |0
 34|  34|ff fff  | 3 |0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 2 |0
102| 102| xxx| 1 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |0

-- 
Gary Stainburn
 
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000 

---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org


Re: [SQL] join/group/count query.

2006-12-20 Thread Erik Jones

Gary Stainburn wrote:

And, I may be missing something, but I'm having a hard time
understanding why you have all of those select columns  of  the form:

count (case when o_model = 5 then 1 else NULL end) as KA,

Considering that that can only return 1 or 0, the case statement would do. 
Is it to avoid putting all of the column names in the group by clause? 
That's hackish and is as much or more typing.


With regards to what you are actually trying to do, giving us your table
definitions and what you are trying to achieve would help a lot more than
just telling us the problem you are having.  The column names in your query
are in no way descriptive and tell us nothing about your actual table
structure.



The order_details view is a join of the orders table to the other tables.

The order table contains the orders. 

Each order has a business partner which is in a separate table. p_id is the 
key, p_name is the name of the partner.


Each order is for a single vehicle, which must be of a specific mode. The 
models are also stored in a separate table. o_model is the attribute in the 
orders table that contains the key to the models table.


The output I'm getting is below, which is what I want. For each partner I get 
a total followed by a breakdown by model the orders for the current month.


key|p_id|p_name  | total | ka | focus | c_max | s_max | fiesta | 
fusion | mondeo | galaxy | ranger | connect | transit | fiesta_van

---+++---++---+---+---++++++-+-+
 40|  40|rrr | 2 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |0
 30|  30|r Group Plc | 2 |0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |0
 78|  78|r r | 2 |0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |0
 46|  46| )  | 3 |0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |0
  3|   3|e   | 8 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | 4 |0
  9|   9|eee | 3 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2 |0
 12|  12||13 |0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 5 | 6 |0
 10|  10|rr Motor| 7 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 5 |0
 34|  34|ff fff  | 3 |0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 2 |0
102| 102| xxx| 1 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |0
  
Ok, then, yeah, I read those count statements wrong and the crosstab 
contrib is what you're looking for.


--
erik jones <[EMAIL PROTECTED]>
software development
emma(r)


---(end of broadcast)---
TIP 6: explain analyze is your friend


Re: [SQL] join/group/count query.

2006-12-20 Thread Hector Villarreal
HI in reading this is it possible what was really intended : 
Sum(case when o_model = 5 then 1 else NULL end) as KA
That would provide a count of all records meeting that condition. 
Otherwise the count( approach will not do that. 


-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Gary Stainburn
Sent: Wednesday, December 20, 2006 8:20 AM
To: pgsql-sql@postgresql.org
Subject: Re: [SQL] join/group/count query.

>
> And, I may be missing something, but I'm having a hard time
> understanding why you have all of those select columns  of  the form:
>
> count (case when o_model = 5 then 1 else NULL end) as KA,
>
> Considering that that can only return 1 or 0, the case statement would
do. 
> Is it to avoid putting all of the column names in the group by clause?

> That's hackish and is as much or more typing.
>
> With regards to what you are actually trying to do, giving us your
table
> definitions and what you are trying to achieve would help a lot more
than
> just telling us the problem you are having.  The column names in your
query
> are in no way descriptive and tell us nothing about your actual table
> structure.

The order_details view is a join of the orders table to the other
tables.

The order table contains the orders. 

Each order has a business partner which is in a separate table. p_id is
the 
key, p_name is the name of the partner.

Each order is for a single vehicle, which must be of a specific mode.
The 
models are also stored in a separate table. o_model is the attribute in
the 
orders table that contains the key to the models table.

The output I'm getting is below, which is what I want. For each partner
I get 
a total followed by a breakdown by model the orders for the current
month.

key|p_id|p_name  | total | ka | focus | c_max | s_max | fiesta |

fusion | mondeo | galaxy | ranger | connect | transit | fiesta_van
---+++---++---+---+---++
++++-+-+
 40|  40|rrr | 2 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1
|0
 30|  30|r Group Plc | 2 |0 | 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0
|0
 78|  78|r r | 2 |0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0
|0
 46|  46| )  | 3 |0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0
|0
  3|   3|e   | 8 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 2 | 4
|0
  9|   9|eee | 3 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 2
|0
 12|  12||13 |0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 5 | 6
|0
 10|  10|rr Motor| 7 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 5
|0
 34|  34|ff fff  | 3 |0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 2
|0
102| 102| xxx| 1 |0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0
|0

-- 
Gary Stainburn
 
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000


---(end of broadcast)---
TIP 4: Have you searched our list archives?

   http://archives.postgresql.org

---(end of broadcast)---
TIP 5: don't forget to increase your free space map settings