VB6.0(SP6.0) /ADO/ Jet.OLEDB.4.0/ でCSVファイルを使って
氏名、支店、入社年月 といった項目のCSVファイルから
2000/4 〜 2007/3 の間に入社した支店別の人数を取得するSQL文は
どのように書いたらいいのかが解らず質問させて頂きました。
DB関係の勉強を初めて1週間位なので、上記の条件の一方だけなら
なんとか取得できるのですが、期間内のデータでCountする方法を
ご教示の程お願い致します。
DBソフトは.mdbでしょうか??
ソースが無いのでなんとも言い難いのですが、
出来れば、ソース並びに、SQLを見せてください。
SQLの一部だけなら・・・
WHERE 入社年月日 >='2000/4' AND 入社年月日<='2007/3'
もしくは、
WHERE 入社年月日 BETWEEN '2000/4' AND '2007/3'
これでどうでしょうか??
レス、ありがとうございます。
元のデータはCSVファイルです。
>WHERE 入社年月日 >='2000/4' AND 入社年月日<='2007/3'
上記では、期間内のデータしか抽出できないですよね。
その期間内に入社した支店別の人数を求めたいのです。
期間内に入社した人だけとか、支店別の人数だけなら取得できるのですが
条件が複合している場合の取得方法が解らないのです。
>支店別の人数
つGROUP BY
VB6ですか…
ADOX - 新しいMDBファイルを作成する
http://homepage2.nifty.com/inform/vbdb/
MDBファイルにテーブル作成し、CSVデータを格納する
こうすれば、SQLを使えますよね。
SELECT 支店,Count(支店) AS 人数
FROM 社員テーブル
WHERE 入社年月日 BETWEEN 2000/4 AND 2007/3
GROUP BY 支店
ORDER BY 支店
かな
訂正:年月日でしたね。
SELECT 支店,Count(支店) AS 人数
FROM 社員テーブル
WHERE 入社年月日 BETWEEN 2000/4/1 AND 2007/3/31
GROUP BY 支店
ORDER BY 支店
かな
これでいけますか??
SELECT 支店,COUNT(*) FROM DATATABLE WHERE 入社年月日 >='2000/4' AND 入社年月日<='2007/3'
GROUP BY 支店
皆さん レスありがとうございました。
皆さんのお陰で下記で取得できました。
strSQL = "SELECT 支店, Count(支店) AS 支店別社員数 FROM " & csvFileName & _
" WHERE FORMAT(入社年月, ""yyyy/mm"")>='2000/04' AND " & _
"FORMAT(入社年月, ""yyyy/mm"")<='2007/03' GROUP BY 支店"
ツイート | ![]() |