select biz."SoilUseArea","BuildArea",ba."AcceptID",biz."DoorPlate",biz."RE_UnitNo",biz."RE_SoilSeaCode",br."OrCertNo",biz."LayoutTypeName",br."SoilUseTo",max(ba."AcceptID")
from gdrereg."BizAccept" ba
left join gdrereg."BizHouseRelate" biz on ba."AcceptID"=biz."AcceptID"
left join gdrereg."MrSoilCert" br on ba."AcceptID"=br."AcceptID"
where ba."AcceptID"='65432320170324000006'
group by biz."SoilUseArea","BuildArea",ba."AcceptID",biz."DoorPlate",biz."RE_UnitNo",biz."RE_SoilSeaCode",biz."LayoutTypeName",br."SoilUseTo",br."OrCertNo"
gdrereg."BizAccept"中一條資料,
gdrereg."BizHouseRelate"中4條資料,
gdrereg."MrSoilCert"中4條資料,
如果不加br."OrCertNo"這個欄位,結果就是4條記錄,加這個欄位就是16條記錄。怎么才能實作添加這個欄位,結果是四條記錄呢

[/img]

uj5u.com熱心網友回復:
select t."SoilUseArea","BuildArea",t."AcceptID",t."DoorPlate",t."RE_UnitNo",t."RE_SoilSeaCode",br."OrCertNo",t."LayoutTypeName",br."SoilUseTo",max(t."AcceptID")
from (
select biz."SoilUseArea","BuildArea",ba."AcceptID",biz."DoorPlate",biz."RE_UnitNo",biz."RE_SoilSeaCode",biz."LayoutTypeName",ba."AcceptID"
from gdrereg."BizAccept" ba
left join gdrereg."BizHouseRelate" biz on ba."AcceptID"=biz."AcceptID"
where ba."AcceptID"='65432320170324000006'
) t
left join gdrereg."MrSoilCert" br on ba."AcceptID"=br."AcceptID"
--where ba."AcceptID"='65432320170324000006'
group by biz."SoilUseArea","BuildArea",ba."AcceptID",biz."DoorPlate",biz."RE_UnitNo",biz."RE_SoilSeaCode",biz."LayoutTypeName",br."SoilUseTo",br."OrCertNo"
大概就是想把前面2個表做左匹配關聯后做成子查詢,再關聯第三個表
uj5u.com熱心網友回復:
left join gdrereg."MrSoilCert" br on t."AcceptID"=br."AcceptID" 為什么我運行 老是提示未定義列呢?? 我看都正常著呢呀uj5u.com熱心網友回復:
我不加分組,只是left join 也在那里提示未定義列uj5u.com熱心網友回復:
您給我提供的陳述句 運行出來還是16條………………uj5u.com熱心網友回復:
有t這個表嗎
uj5u.com熱心網友回復:
這個問題 已經解決了 運行結果 和我寫的一樣 都是16條資料呀 但是把br."SoilUseTo" 這個欄位去掉 就是4條 我快瘋了uj5u.com熱心網友回復:
上面說是br."OrCertNo" 現在又說br."SoilUseTo" 懵懵的
groupby分組的專案只要有不同的組合就會多出一條結果是當然的,你想怎樣?
uj5u.com熱心網友回復:
嘿嘿 打錯欄位名了 是br."OrCertNo"uj5u.com熱心網友回復:
不加br."OrCertNo"分組時是4條
每一條其實都隱含了4個不一樣的"OrCertNo",所以分組中加了."OrCertNo"之后結果就是16條了,
以希望依然只是4條,那么就需要明確針對不同的."OrCertNo"取哪一個,用聚合函式(max之類)去取,而不是加到分組里
uj5u.com熱心網友回復:
問題就是我現在需要 這4個不一樣的“OrCertNo” 能夠不重復的顯示出來, 如果我用max等取值 就會丟失3個資料呀,顯示就不正確了uj5u.com熱心網友回復:
那不就16條了,你想OrCertNo1,OrCertNo2,OrCertNo3,OrCertNo4.。。。。。顯示在一行上?要有1萬個呢
問問題你得先說清楚啊,不知道你要干什么
uj5u.com熱心網友回復:
我想把 圖片1和圖片2的兩個4條記錄,合并成一張表顯示出來
uj5u.com熱心網友回復:
合并的key是什麼,沒有嗎,所以無條件合并變成了笛卡爾積16條,這樣么你這兩個查詢分別把rownum取出來,然后用rownum做合并的key吧,
兩個查詢結果件數可能不一致的話注意用外連接
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/100799.html
標籤:高級技術
上一篇:正則運算式求解
下一篇:執行請求的操作時遇到錯誤: Listener refused the connection with the following error: ORA-125
