
countとdistinctを使ったSQL文について
VB2005+SQLSERVER2005で開発を行っています。
distinctとcountを組み合わせて抽出するようなSQL文になるのかなと思うのですが
うまくいきません
カラム maker:メーカ名が登録されている
テーブル shohin
カラムmakerの実際のデータ例
富士通
NEC
東芝
パナソニック
NEC
NEC
パナソニック
抽出した結果の例
富士通 1
NEC 3
東芝 1
パナソニック 2
メーカー名とその件数が出力結果となります
以上ですがわかる方いらっしゃいましたらご回答お願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
select m.name,s.makercd,count(s.makercd)
from shohin s left join meisho m on s.makercd=m.makercd
group by s.makercd;
追加質問に素直に答えると上記です。
追加質問のエラーというのは、多分ですが、
「Column 'makercd' in field list is ambiguous」ではないでしょうか?
であれば、これはgroup byで指定したmakercdに、
どちらのテーブルのmakercdかの指定がないためです。
上記のsqlは素直にそれを訂正しただけです。
ただ、例を見てたのですが、「004 東芝」はmeishoには登録されているけど
shohinに出てきていないですね。
-----------
001 富士通 3
002 NEC 2
003 パナソニック 1
004 東芝 0
-----------
もし、上記のような0件の結果も必要ならば以下となります。
select m.makercd,m.name,count(s.makercd)
from meisho m left join shohin s on m.makercd=s.makercd
group by s.makercd
order by m.makercd;
度々、ご回答ありがとうございました。
いわれた様に行いましたら完成することができました。
お忙しい中何度もご回答いただきましてありがとうございます
No.1
- 回答日時:
distinctではなくgroup by を使います。
select maker,count(maker) from shohin group by maker;
ご回答ありがとうございました。
助かりました。
しかし、もう一つ問題が発生しました
makerの所がメーカー名ではなくメーカーコードなのです。
それでleft joinでgroup by句をつなげることになると
思うのですがエラーが回避できません。
訂正
商品マスタ(shohin) カラム makercd
001
002
003
001
001
002
名称マスタ(meisho) カラムcode name
code name
001 富士通
002 NEC
003 パナソニック
004 東芝
のようになります。
こんな感じに自分なりに考えたのですがエラーがでて回避できません。
select name, makercd,count(makercd) from shohin
left join meisho on makercd = code
group by maker
お忙しいな中申し訳ありませんがもう一つご回答願いませんでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQL 改行コードを含む文字列...
-
データの暗号化について
-
他のシートの検索
-
一部のカラムでdistinctし全て...
-
DBの定義のサイズを大きくし過...
-
SELECT文で、指定カラム以外の...
-
ホームページを作ろうと思いま...
-
スペースによる絞り込み検索をS...
-
カラムとコラムの使い分け
-
Select文で結合した時に、重複...
-
自動販売機でホットとアイスが...
-
コンボボックスの抽出条件のLik...
-
波形データを格納するデータベース
-
INDIRECT関数の代替方法は?
-
AUTO_INCREMENTに0はダメ?
-
インデックスの作り方
-
Microsoft SQL Server 2005 の...
-
now()かCURRENT_TIMESTAMPか
-
MySQL 一つのテーブルで登録日...
-
UNIONする際、片方テーブルしか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テーブルの列数を調べたい
-
[MySQL]LOAD DATA INFILE一部レ...
-
group byで最後のレコードを抽...
-
MYSQLで小数点を表示する場合と...
-
WHEREなどの条件が多い場合、ど...
-
MySQL 改行コードを含む文字列...
-
データを同データが並ばないよ...
-
同一日に複数レコードがある場...
-
sqlについて質問です。
-
MySQL AUTO_INCREMENTが最大に...
-
betweenを使うyyyy/mm/ddでの範...
-
mysqlの結果の速度はデータの違...
-
データ型による検索速度の違い...
-
カラムの値を、条件により動的...
-
フレンドリストのようなものを...
-
年月日のうち月日だけ取得したい。
-
MYSQLのストアドでの動的SQLに...
-
select * での表示が崩れる?
-
MySQLデータでデータチェック
-
データの暗号化について
おすすめ情報