我有一個由java代碼創建的專案,和一個有兩個表(table1和table2)的資料庫。 看起來像這樣:
-------table1--------
名稱|參考文獻
__________|__________
A | 100
B | 200
__________|__________
和
-------table2--------
名稱|Q
__________|________
A | 12
B | 10
A | 14
__________|__________
我試著創建一個SQL查詢,得到這個結果:
我試著創建一個SQL查詢。
Name | Ref | SUM(Q)
__________|_________|__________
A | 100 | 26
B | 200 | 10
__________|_________|__________。
我寫了這個查詢
query ="SELECT table1. Name,table1.Ref FROM table1 WHERE table1.Name=(SELECT table2.Name,SUM(table2.Q) FROM table2 GROUP BY table2.Name)";
但是我的代碼不作業,我得到了這個錯誤:
但是我的代碼不作業,我得到了這個錯誤。
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.0 row column count 不匹配
有什么建議可以糾正我的查詢代碼嗎?
uj5u.com熱心網友回復:
使用這個:
SELECTtable1.Name,table1.Ref
FROM table1.
WHERE table1.Name IN (SELECT table2.NameFROM table2)
你的子查詢有兩個問題。
- 它回傳一個以上的列,所以不適合用
=或IN進行匹配。 - 它可能回傳多于一行,所以它不適合與
=匹配。
uj5u.com熱心網友回復:
你可以使用:
select a.name,ref, name_sum
from table1 a
內部 join ()
select name,sum(Q) as name_sum
from table2
group by name) b
on a.name=b.name。
在table2中,你可以選擇你需要的sum并與table1相連接。
演示。https://www.db-fiddle.com/f/7yUJcuMJPncBBnrExKbzYz/3
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/314193.html
標籤:
