SQL文の書き方について

解決


DB勉強中  2008-12-13 19:57:41  No: 141065

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

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

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


マーチン  2008-12-14 01:55:21  No: 141066

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

SQLの一部だけなら・・・

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

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

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


DB勉強中  2008-12-14 02:16:14  No: 141067

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

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


  2008-12-14 02:21:30  No: 141068

>支店別の人数
つGROUP BY


やじゅ  2008-12-14 02:35:41  No: 141069

VB6ですか…

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

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


やじゅ  2008-12-14 02:42:33  No: 141070

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

かな


やじゅ  2008-12-14 02:45:19  No: 141071

訂正:年月日でしたね。

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

かな


マーチン  2008-12-14 03:13:15  No: 141072

これでいけますか??

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


DB勉強中  2008-12-14 03:36:29  No: 141073

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加