2016-03-21 18 views
1

Satırları güncelleştirirken "SQLCODE: -811" hatası alıyorum. İçimdeki sorgunun birden fazla değer döndürmesi nedeniyle hatanın geldiğini biliyorum. Sorguyu düzgün bir şekilde nasıl ilişkilendireceğimi bilmem gerekiyor. Lütfen bana sorguda yardım edin!Tablodaki satırları güncelleştirirken hata

update hpl.kamodt C 
    set (NRANK, chghlightacces) = 
      (select NRANK, chghlightacces 
       from hpl.kamodt as A 
        inner join (
         select naccesgrpref, NMOD, count(*) 
         from hpl.kamodt 
         where naccesgrpref is not null 
         and NMOD is not null 
         group by naccesgrpref, NMOD 
         having count(naccesgrpref) > 1) B 
        on A.naccesgrpref = B.naccesgrpref 
        and A.NMOD = B.NMOD 
        and A.naccesgrpref = A.NACCES) 

iç sorgusu grubuna sahip olan ve bu sütunlara ilişkin seviye, accesgrpref seçmektir değeri kontrol edilir. Bu değerleri naccesgrpref'in iç sorgudan naccesgrpref değerine eşit olan bölümleri için ayarlamanız gerekir.

Lütfen bu sorguda bana yardımcı olun.

update hpl.kamodt C 
    set (NRANK, chghlightacces) = 
      (select NRANK, chghlightacces 
       from (select naccesgrpref, NMOD, count(*) 
        from hpl.kamodt 
        where naccesgrpref is not null and NMOD is not null 
        group by naccesgrpref, NMOD 
        having count(naccesgrpref) > 1 
        ) B 
       where C.naccesgrpref = B.naccesgrpref and 
        C.NMOD = B.NMOD 
      ) 
    where C.naccesgrpref = C.NACCES; 

budur (akıllı) spekülasyon:

+0

Lütfen sorunuzu kullandığınız veritabanı ile etiketleyin. –

cevap

2

Muhtemelen, böyle bir şey istiyoruz. İlişkili bir alt sorgu, dış sorgudaki tabloya başvurmalıdır. Sürümünüzün korelasyonu yoktur, bu nedenle kopyaları döndürmesi şaşırtıcı değildir.

+0

Sorgunuzu çalıştırmayı denedim ancak "null değerleri değil, null sütunlar için güncellenmediği" hatası aldım. Naccesgrpref = nacess.but olduğunda nrank ve chghlightacces değerlerini almak zorundasınız ama naccesgrpref = nacces deyimini tutarak mantığı tamamen değiştirdiniz naccesgrpref = naces olduğunda naccesghpref = naces ve naccesrpref değerlerine sahip olan satırlara bu değerleri güncellemek zorunda kaldım.Gordon Linoff – pravallika

İlgili konular