2013-04-26 71 views
0

值我有以下查詢指定SQL查詢

SELECT 
    R.CATENTRY_ID_PARENT AS PARENT, 
    R.CATENTRY_ID_CHILD AS CHILD, 
D.NAME AS NAME, 
INTEGERVALUE AS INTEGERVALUE,STRINGVALUE AS STRINGVALUE, 
       D.SHORTDESCRIPTION AS SDESC, D.LONGDESCRIPTION AS LDESC, D.keyword AS KEYWORD, C.MFPARTNUMBER AS HOLIMAGEPATH, avl.topimage AS THUMB, 
        (case when (exists (Select INTEGERVALUE from xstoreattrval M1 where M1.store_id =10051 and M1.xstoreattr_id in (select xstoreattr_id from xstoreattr M2 where M2.name in ('hasClubExlusives')))) then INTEGERVALUE else null end) as INTEGERVALUE, 
        (case when (exists (Select STRINGVALUE from attrvalue M3 where M3.attribute_id in (select attribute_id from attribute M4 where M4.name in ('clubExclusive') and M4.catentry_id=CAT1ID))) then STRINGVALUE else null end) as STRINGVALUE, 
        C.CATENTRY_ID as CAT1ID 
        FROM CATENTREL R, CATENTRY C, CATENTDESC D, XCATENTAVL avl,     
        (Select INTEGERVALUE from xstoreattrval M1 where M1.store_id =10051 and M1.xstoreattr_id in (select xstoreattr_id from xstoreattr M2 where M2.name in ('hasClubExlusives'))) as INTEGERVALUE, 
        (Select STRINGVALUE from attrvalue M3 where M3.attribute_id in (select attribute_id from attribute M4 where M4.name in ('clubExclusive') and M4.catentry_id=CAT1ID)) as STRINGVALUE 
        --INNER JOIN ATTRVALUE V ON V.CATENTRY_ID = C.CATENTRY_ID 
        --INNER JOIN ATTRIBUTE AT ON V.ATTRIBUTE_ID = AT.ATTRIBUTE_ID  
        WHERE C.CATENTRY_ID = D.CATENTRY_ID      
        AND C.BUYABLE = 1 
        AND C.MARKFORDELETE = 0 
        AND D.PUBLISHED = 1 
        AND R.CATENTRY_ID_PARENT = C.CATENTRY_ID 
        --AND NOT (INTEGERVALUE1 = '0' AND STRINGVALUE2='true') 
        AND C.CATENTRY_ID = AVL.CATENTRY_ID 
        AND C.CATENTTYPE_ID = 'ProductBean' 
        AND R.CATENTRY_ID_PARENT IN ( 
        SELECT DISTINCT CC.CATENTRY_ID 
        FROM CATENTRY CC, CATGPENREL RR, CATGROUP GG, CATGRPDESC DD 
        WHERE RR.CATALOG_ID = 10901 
        AND CC.CATENTRY_ID = RR.CATENTRY_ID 
        AND GG.CATGROUP_ID = RR.CATGROUP_ID 
        AND GG.CATGROUP_ID = DD.CATGROUP_ID 
        AND DD.NAME NOT LIKE 'PULLED%' 
        ) ORDER BY R.CATENTRY_ID_PARENT FOR READ ONLY WITH UR 

然而,在時的CAT1ID分配不工作的第二種情況。它扔瞭如下錯誤

Error: DB2 SQL Error: SQLCODE=-206, SQLSTATE=42703, SQLERRMC=CAT1ID, DRIVER=4.1.85

是否有人可以在這方面的幫助?

+0

http://www.sqlerror.de/db2_sql_error_-206_sqlstate_42703.html – 2013-04-26 06:34:10

+0

是啊,我已經得到了鏈接,但我想就如何分配價值,爲CAT1id參數的想法 – 2013-04-26 06:35:09

回答

0

在你的第二個情況下,有最內層查詢

select attribute_id from attribute M4 where M4.name in ('clubExclusive') and M4.catentry_id=CAT1ID 

,並在此查詢SQL是試圖找到一個在atrributeCAT1D表。實際上,只有在最外面的查詢中才有CAT1D字段。

您可以使用CURSOR並將CAT1D值帶入一個變量,然後在您的主查詢中使用。