Home » SQL & PL/SQL » SQL & PL/SQL » SQL PROBLEM!
SQL PROBLEM! [message #9998] Fri, 19 December 2003 07:59 Go to next message
Gopala K Tasupalli
Messages: 14
Registered: October 2002
Junior Member
Hi Friends,

I have a problem, i wrote a SQL and i am getting the followin result,

ZIP TERR ADDR_TYPE
--------------------------
90025 V2HE Shipping
90403 V2HE Storage

my problem is instead of 2 records i shoudl get only one record like this

TERR SHIPPINGZIP STORAGEZIP
V2HE 90025 90403

Can any body help me? or if you need further details please let me know?

Thanks in Advance
Gopal
Re: SQL PROBLEM! [message #9999 is a reply to message #9998] Fri, 19 December 2003 08:39 Go to previous messageGo to next message
Art Metzer
Messages: 2480
Registered: December 2002
Senior Member
SELECT   t.terr
,        MAX(DECODE(t.addr_type,'Shipping',t.zip)) shippingzip
,        MAX(DECODE(t.addr_type,'Storage',t.zip))  storagezip
FROM     t
GROUP BY t.terr
HTH,

A.
Re: SQL PROBLEM! [message #10000 is a reply to message #9999] Fri, 19 December 2003 10:05 Go to previous messageGo to next message
Gopala K Tasupalli
Messages: 14
Registered: October 2002
Junior Member
Hi

Thank you verymuch for the reply, but when use the query given by you i am getting both the shippingzip and storezip fields as BLANK, can you tell me why?

Thanks
Gopal
Re: SQL PROBLEM! [message #10001 is a reply to message #10000] Fri, 19 December 2003 10:39 Go to previous messageGo to next message
sverch
Messages: 582
Registered: December 2000
Senior Member
Try TRIM:
SELECT t.terr, MAX(DECODE(TRIM(t.addr_type),'Shipping',TRIM(t.zip))) shippingzip,
MAX(DECODE(TRIM(t.addr_type),'Storage',TRIM(t.zip))) storagezip
FROM t GROUP BY t.terr
Re: SQL PROBLEM! [message #10025 is a reply to message #10001] Mon, 22 December 2003 23:23 Go to previous message
Srinivas
Messages: 138
Registered: June 2000
Senior Member
CREATE TABLE table_name (terr VARCHAR2(10),zip VARCHAR2(10),addr_type VARCHAR2(20))

INSERT INTO TABLE_NAME ( TERR, ZIP, ADDR_TYPE ) VALUES (
'V2HE', '90025', 'Shipping');
INSERT INTO TABLE_NAME ( TERR, ZIP, ADDR_TYPE ) VALUES (
'V2HE', '90403', 'Storage');
INSERT INTO TABLE_NAME ( TERR, ZIP, ADDR_TYPE ) VALUES (
'V3HE', '90025', 'Shipping');
INSERT INTO TABLE_NAME ( TERR, ZIP, ADDR_TYPE ) VALUES (
'V3HE', '90403', 'Storage');
INSERT INTO TABLE_NAME ( TERR, ZIP, ADDR_TYPE ) VALUES (
'V4HE', '90000', 'Shipping');
INSERT INTO TABLE_NAME ( TERR, ZIP, ADDR_TYPE ) VALUES (
'V4He', '80000', 'Storage');
INSERT INTO TABLE_NAME ( TERR, ZIP, ADDR_TYPE ) VALUES (
'V5HE', '09808', 'Shipping');

SELECT terr,SUM(shippingzip)shippingzip,SUM(storagezip) storagezip
FROM
(SELECT terr,
DECODE(addr_type,'Shipping',zip,NULL) shippingzip,
DECODE(addr_type,'Storage',zip,NULL) storagezip
FROM
table_name
)
GROUP BY terr

This works IFF the ADDR_TYPE IS shipping or storage.

HTH
Srini
Previous Topic: to_date format
Next Topic: RETURNING in EXECUTE IMMEDIATE
Goto Forum:
  


Current Time: Thu Apr 25 12:40:30 CDT 2024