SQL文の書き方について

解決


DB勉強中  2008-12-13 10:57:41  No: 141065  IP: 192.*.*.*

VB6.0(SP6.0) /ADO/ Jet.OLEDB.4.0/ でCSVファイルを使って

氏名、支店、入社年月 といった項目のCSVファイルから
2000/4 〜 2007/3 の間に入社した支店別の人数を取得するSQL文は
どのように書いたらいいのかが解らず質問させて頂きました。

DB関係の勉強を初めて1週間位なので、上記の条件の一方だけなら
なんとか取得できるのですが、期間内のデータでCountする方法を
ご教示の程お願い致します。

編集 削除
マーチン  2008-12-13 16:55:21  No: 141066  IP: 192.*.*.*

DBソフトは.mdbでしょうか??
ソースが無いのでなんとも言い難いのですが、
出来れば、ソース並びに、SQLを見せてください。

SQLの一部だけなら・・・

WHERE 入社年月日  >='2000/4'  AND  入社年月日<='2007/3'


もしくは、
WHERE 入社年月日  BETWEEN   '2000/4'  AND  '2007/3'

これでどうでしょうか??

編集 削除
DB勉強中  2008-12-13 17:16:14  No: 141067  IP: 192.*.*.*

レス、ありがとうございます。
元のデータはCSVファイルです。

>WHERE 入社年月日  >='2000/4'  AND  入社年月日<='2007/3'
上記では、期間内のデータしか抽出できないですよね。
その期間内に入社した支店別の人数を求めたいのです。
期間内に入社した人だけとか、支店別の人数だけなら取得できるのですが
条件が複合している場合の取得方法が解らないのです。

編集 削除
 2008-12-13 17:21:30  No: 141068  IP: 192.*.*.*

>支店別の人数
つGROUP BY

編集 削除
やじゅ  2008-12-13 17:35:41  No: 141069  IP: 192.*.*.*

VB6ですか…

ADOX - 新しいMDBファイルを作成する
http://homepage2.nifty.com/inform/vbdb/

MDBファイルにテーブル作成し、CSVデータを格納する
こうすれば、SQLを使えますよね。

編集 削除
やじゅ  2008-12-13 17:42:33  No: 141070  IP: 192.*.*.*

SELECT 支店,Count(支店) AS 人数     
FROM 社員テーブル
WHERE 入社年月日 BETWEEN  2000/4 AND 2007/3
GROUP BY 支店
ORDER BY 支店

かな

編集 削除
やじゅ  2008-12-13 17:45:19  No: 141071  IP: 192.*.*.*

訂正:年月日でしたね。

SELECT 支店,Count(支店) AS 人数     
FROM 社員テーブル
WHERE 入社年月日 BETWEEN  2000/4/1 AND 2007/3/31
GROUP BY 支店
ORDER BY 支店

かな

編集 削除
マーチン  2008-12-13 18:13:15  No: 141072  IP: 192.*.*.*

これでいけますか??

SELECT 支店,COUNT(*) FROM  DATATABLE  WHERE  入社年月日  >='2000/4'  AND  入社年月日<='2007/3'
 GROUP BY 支店

編集 削除
DB勉強中  2008-12-13 18:36:29  No: 141073  IP: 192.*.*.*

皆さん  レスありがとうございました。
皆さんのお陰で下記で取得できました。

strSQL = "SELECT 支店, Count(支店) AS 支店別社員数 FROM " & csvFileName & _
         " WHERE FORMAT(入社年月, ""yyyy/mm"")>='2000/04' AND " & _
                "FORMAT(入社年月, ""yyyy/mm"")<='2007/03' GROUP BY 支店"

編集 削除