Unix Technical Forum

problems with SELECT query results

This is a discussion on problems with SELECT query results within the pgsql Sql forums, part of the PostgreSQL category; --> Hello, I am new to this list and have been working with PostgreSQL since January. Here is my problem, ...


Go Back   Unix Technical Forum > Database Server Software > PostgreSQL > pgsql Sql

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 04-19-2008, 03:26 PM
Joshua
 
Posts: n/a
Default problems with SELECT query results

Hello,

I am new to this list and have been working with PostgreSQL since January.

Here is my problem, I hope someone here has some experience or can point
me in the right direction. I am writing the following query for a C#
program I am writing:

SELECT 'PV.LINEITEM:' || partnum || ',' || round(onhand) || ',' ||
round(qm5) || ',' || round(lsm4) || ',' || ',' || ',' || round(onorder)
|| ',' || ',' || ',' || binone || ',' || ',' || round(backorderqty) ||
',' || ',' || round(onhold) || ',' || ',' || ',' || ',' || ',' || ',' ||
',' || round(qtyperjob) || ',' || round(ordermax) AS gmrim FROM slparts
WHERE vendor LIKE 'CH%'

The query does work and I am getting results from the database. There
are values for all 'partnum' in the database, however, the query results
include blank fields here and there in between the returned records. Why
am I receiving blank fields for 'gmrim'???? This absolutely defies logic
and I cannot find any rhyme or reason for this problem. I cannot have
any blank rows in the query, and again the database is completely
populated with values.

Could someone give me an explanation or tell me why I am receiving blank
rows here and there as a query result. If you need further clarification
of this problem or have any questions for me to arrive at a conclusion
please feel free to send them to me and I will be more than happy to
open a dialog in order to solve this problem.

Thanks in advance for assistance.

Cordially,
Joshua Neil

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

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

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 04-19-2008, 03:26 PM
Richard Huxton
 
Posts: n/a
Default Re: problems with SELECT query results

Joshua wrote:
> Hello,
>
> I am new to this list and have been working with PostgreSQL since January.
>
> Here is my problem, I hope someone here has some experience or can point
> me in the right direction. I am writing the following query for a C#
> program I am writing:
>
> SELECT 'PV.LINEITEM:' || partnum || ',' || round(onhand) || ',' ||
> round(qm5) || ',' || round(lsm4) || ',' || ',' || ',' || round(onorder)
> || ',' || ',' || ',' || binone || ',' || ',' || round(backorderqty) ||
> ',' || ',' || round(onhold) || ',' || ',' || ',' || ',' || ',' || ',' ||
> ',' || round(qtyperjob) || ',' || round(ordermax) AS gmrim FROM slparts
> WHERE vendor LIKE 'CH%'
>
> The query does work and I am getting results from the database. There
> are values for all 'partnum' in the database, however, the query results
> include blank fields here and there in between the returned records. Why
> am I receiving blank fields for 'gmrim'???? This absolutely defies logic
> and I cannot find any rhyme or reason for this problem. I cannot have
> any blank rows in the query, and again the database is completely
> populated with values.


I'm not sure it is - I think you've got a NULL somewhere.

Since NULL means "unknown" ('text' || NULL) = NULL

Wrap all your column-references in COALESCE: e.g. COALESCE(partnum,'')
and see if that solves it. If so, go back and find rows WHERE partnum IS
NULL and correct them. Then set the NOT NULL constraint on the relevant
columns.

--
Richard Huxton
Archonet Ltd

---------------------------(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

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 04-19-2008, 03:26 PM
Joshua
 
Posts: n/a
Default Re: problems with SELECT query results

Hello,

Thank you all for your assistance. I did end up finding NULL in the
'onorder' column which should have been zero's.... this was in a test
table that happened to have some NULL in it for one reason or another
but I should not find this in the production version of the table.

I also appreciate you pointing out the COALESCE function. I will find
that helpful in future work.

I look forward to hopefully assisting you guys with some of your
PostgreSQL dilemmas in the future!

Thanks again!!!

-Joshua

Richard Huxton wrote:
> Joshua wrote:
>> Hello,
>>
>> I am new to this list and have been working with PostgreSQL since
>> January.
>>
>> Here is my problem, I hope someone here has some experience or can
>> point me in the right direction. I am writing the following query for
>> a C# program I am writing:
>>
>> SELECT 'PV.LINEITEM:' || partnum || ',' || round(onhand) || ',' ||
>> round(qm5) || ',' || round(lsm4) || ',' || ',' || ',' ||
>> round(onorder) || ',' || ',' || ',' || binone || ',' || ',' ||
>> round(backorderqty) || ',' || ',' || round(onhold) || ',' || ',' ||
>> ',' || ',' || ',' || ',' || ',' || round(qtyperjob) || ',' ||
>> round(ordermax) AS gmrim FROM slparts WHERE vendor LIKE 'CH%'
>>
>> The query does work and I am getting results from the database. There
>> are values for all 'partnum' in the database, however, the query
>> results include blank fields here and there in between the returned
>> records. Why am I receiving blank fields for 'gmrim'???? This
>> absolutely defies logic and I cannot find any rhyme or reason for
>> this problem. I cannot have any blank rows in the query, and again
>> the database is completely populated with values.

>
> I'm not sure it is - I think you've got a NULL somewhere.
>
> Since NULL means "unknown" ('text' || NULL) = NULL
>
> Wrap all your column-references in COALESCE: e.g. COALESCE(partnum,'')
> and see if that solves it. If so, go back and find rows WHERE partnum
> IS NULL and correct them. Then set the NOT NULL constraint on the
> relevant columns.
>



---------------------------(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

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 04-19-2008, 03:26 PM
Lew
 
Posts: n/a
Default Re: problems with SELECT query results

Joshua wrote:
> Thank you all for your assistance. I did end up finding NULL in the
> 'onorder' column which should have been zero's.... this was in a test
> table that happened to have some NULL in it for one reason or another
> but I should not find this in the production version of the table.
>
> I also appreciate you pointing out the COALESCE function. I will find
> that helpful in future work.
>
> I look forward to hopefully assisting you guys with some of your
> PostgreSQL dilemmas in the future!


Please do not top-post, and be sure to acknowledge both groups to whom you
multi-posted, pgsql.sql and pgsql.general, for their help. (I don't know if
there were others.)

A more effective way to post to multiple groups is to cross-post, send to all
groups in the single message as I did here, which unifies the threads so that
all answers appear to each reader.

Multi-posting (sending to each group separately) is frustrating because it
fragments the conversation.

--
Lew
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 04-19-2008, 03:26 PM
Richard Broersma Jr
 
Posts: n/a
Default Re: problems with SELECT query results


--- Joshua <joshua@joshuaneil.com> wrote:

> Hello,
>
> Thank you all for your assistance. I did end up finding NULL in the
> 'onorder' column which should have been zero's.... this was in a test
> table that happened to have some NULL in it for one reason or another
> but I should not find this in the production version of the table.


If this should be allowed to have nulls, you should add a not null constraint to your table to
prevent this sort of thing from happening. If a field should have zero's instead of nulls, you
should also add a default value of zero for this column.

ALTER TABLE Slparts
ALTER COLUMN onorder SET NOT NULL,
ALTER COLUMN onorder SET DEFAULT 0;

Regards,
Richard Broersma Jr.

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster

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 10:14 PM.


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