http://sqlfiddle.com/#!2/d005f/16/0
SQLフィドルのテーブル名を変更しました。私はそれらを正しく元に戻したと思います....
select dis.diswording,
count(vau.item) as item_count,
coalesce(sum(vau.value),0) as value_sum
from dis.csv as dis
left join vau.csv as vau
on dis.id = vau.id and vau.type = 'trade'
group by dis.diswording;
あなたはほとんどそれを正しく持っていました。の条件はステートメントでtype='trade'
発生する必要があり、 でダウンする必要はありません。は、すべての行と、それらが一致する行のみが必要であることを示しています。それを理解するのに1分かかりましたが、どこにあるのかによってデータの一部が失われていました. join
where
left outer join
dis.csv
vau.csv
type='trade'
次のように考えることもできます。
select dis.diswording,
count(vau.item) as item_count,
coalesce(sum(vau.value),0) as value_sum
from dis.csv as dis
left join (select *
from vau.csv
where vau.type = 'trade') as vau
on dis.id = vau.id
group by dis.diswording;
編集:
代わりにcoalesce(sum(vau.value),0) as value_sum
試すことができます:
Nz(sum(vau.value),0) as value_sum
- 正確で完全なエラーを教えてください(質問を更新できます)。クエリを書き直す方法はいくつかあるので、受け入れ可能なものに切り替えることは可能だと確信しています。Jet/Excel/Office は少し奇妙で厄介です。これらのクエリを提供する前に、実際の環境でこれらのクエリをテストする方法はありません。
DB に問題があるクエリの部分がわかりません。これも機能します:
合体を Nz に置き換えてみてください
select dis.diswording,
sum(case when vau.type='trade'
then 1 else 0 end) as item_count,
coalesce(sum(case when vau.type='trade'
then vau.value
else 0 end),0) as value_sum
from dis.csv as dis
left join vau.csv as vau
on dis.id = vau.id
group by dis.diswording;
トラブルシューティングを試して、その一般的なエラーが発生するクエリの部分を確認できますか? 部分を削除してクエリをできるだけ単純にするだけです...次に何かを追加してください。問題を特定できるかどうかを確認してください。
これは実行されますか?(最も基本的な形を試してください)
select dis.id, dis.diswording,
vau.item, vau.value, vau.type
from dis.csv as dis
left join vau.csv as vau
on dis.id = vau.id
これは実行されますか?(結合で取引をフィルタリングしてみてください)
select dis.id, dis.diswording,
vau.item, vau.value, vau.type
from dis.csv as dis
left join vau.csv as vau
on dis.id = vau.id and vau.type='trade'
これは実行されますか?(ネストされた選択を試してください)
select dis.id, dis.diswording,
vau.item, vau.value, vau.type
from dis.csv as dis
left join (select * from vau.csv where type='trade') as vau
on dis.id = vau.id
これは実行されますか?(#1が機能したと仮定して、機能するクエリに合計/カウントを追加します)
select dis.id, dis.diswording,
count(vau.item) as item_count,
sum(vau.value) as vaue_sum
from dis.csv as dis
left join vau.csv as vau
on dis.id = vau.id
group by dis.id, dis.diswording
そして、それを続けて問題が何であるかを確認してください...使用したいクエリをゆっくりと構築してください。一般的なエラーは、DB がサポートしていないことをしようとしていることを意味します。存在しない関数を使用すると、おそらく構文エラーになります。