こんにちわ。今SQLの書き方が分からなくて大変困っております。
ACCESS2000で、テーブルが一つあるとします。
テーブルの内容は、氏名・点数の2項目だとします。

点数が50点より大きい人を抽出したいのですが、
項目は全てSTRING型にしないといけないため、
単純に比較できません。抽出した項目を数値型に
変換して、比較したいのですが、どのように書いたらいいのでしょうか。

SELECT  Shimei , CAST(Tensuu AS NUMERIC)
FROM   Table1
WHERE   Tensuu > 50;

このようなクエリを書いてみましたがエラーが出てしまいます。
ORACLEではTO_NUMBERなどの関数があると思うのですが、
ACCESSではどのようにしたらいいのでしょうか??
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

この程度か?



SELECT テーブル1.Shimei, CInt([Tensuu]) AS 得点
FROM テーブル1
WHERE (((CInt([Tensuu]))>50));

それではヘルプでCIntでも確認してね。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcelアルファベットを含む数値から文字に変換

Excelで質問です。
アルファベットを含む数値から文字に変換する方法
例えば、下記のような変換方法はありますでしょうか?
101 → りんご
1A2 → みかん
101,1A2 → りんご,みかん

Aベストアンサー

こんにちは!
横からお邪魔します。

↓の画像のようにSheet2に表があり、Sheet1のB列に表示するようにしてみました。
他の方々と同じようにVBAになってしまいます。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目からあるとします。

Sub Sample1() 'この行から
Dim i As Long, k As Long, n As Long, c As Range, buf As String, myArray
Dim wS1 As Worksheet, wS2 As Worksheet
Set wS1 = Worksheets("Sheet1")
Set wS2 = Worksheets("Sheet2")

wS1.Columns(2).ClearContents
For i = 1 To wS1.Cells(Rows.Count, 1).End(xlUp).Row
On Error Resume Next
buf = ""
If InStr(wS1.Cells(i, 1), ",") > 0 Then
myArray = Split(wS1.Cells(i, 1), ",")
For k = 0 To UBound(myArray)
Set c = wS2.Columns(1).Find(What:=myArray(k), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
buf = buf & wS2.Cells(n, 2) & ","
Next k
wS1.Cells(i, 2) = Left(buf, Len(buf) - 1)
Else
Set c = wS2.Columns(1).Find(What:=wS1.Cells(i, 1), LookIn:=xlValues, LookAt:=xlWhole)
n = c.Row
wS1.Cells(i, 2) = wS2.Cells(n, 2)
End If
Next i
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m

こんにちは!
横からお邪魔します。

↓の画像のようにSheet2に表があり、Sheet1のB列に表示するようにしてみました。
他の方々と同じようにVBAになってしまいます。

Alt+F11キー → メニュー → 挿入 → 「標準モジュール」を選択 → VBE画面に
↓のコードをコピー&ペーストしてマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
尚、Sheet1のデータは1行目からあるとします。

Sub Sample1() 'この行から
Dim i As Long, k As Long, n As Long, c As Range, buf As Strin...続きを読む

QACCESSで2つのテーブル比較で一致データのみ抽出したい

ACCESS初心者です。
2つのテーブルのあるフィールドを比較して、
両方のフィールドに存在するデータであれば、それを抽出する
といったことをしたいのですが、どなたか手法を教えて下さい。
よろしくお願いします。

Aベストアンサー

No.2・No.4です。

> 少し勉強のお付き合いをしていただいて良いでしょうか?

はい。
ではまず、前回作成して戴いたクエリを、それぞれ以下のように変更して下さい。
(SQL文はそれぞれ全文のコピー&ペースト(上書き)でOKです);

※「テーブル1→テーブル2」型 ; クエリ名=クエリA
SELECT DISTINCT テーブル1.データ1, "テーブル1" AS 由来
FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.データ1 = テーブル2.データ2
WHERE (((テーブル2.データ2) Is Null))
ORDER BY テーブル1.データ1;

※「テーブル1←テーブル2」型 ; クエリ名=クエリB
SELECT DISTINCT テーブル2.データ2, "テーブル2" AS 由来
FROM テーブル1 RIGHT JOIN テーブル2 ON テーブル1.データ1 = テーブル2.データ2
WHERE (((テーブル1.データ1) Is Null))
ORDER BY テーブル2.データ2;

<変更の概略と理由の説明>
・(1行目) Distinct
 →重複分を非表示(なくても可)
・(1行目) "テーブル○" As 由来
 →各データがどのテーブルにあったかがわかるようにするために追加
  (不要なら『SELECT DISTINCT テーブル○.データ○』に変更して下さい)
・(4行目) 非表示列での並べ替え指定を解除
 →「表示」のチェックと同様、全て「Null」なので不要
  (重複分を非表示にしようとした場合には、エラーの原因にもなります)


・・・以上で準備は終わりです。
「AとBどちらかだけ」のデータを1つにまとめて表示するためのSQL文は、以下のように
なります;
Select クエリA.データ1 As 表示列,クエリA.由来 From クエリA
UNION
Select クエリB.データ2 As 表示列,クエリB.由来 From クエリB;

 *このタイプのクエリ(ユニオンクエリといいます)は、デザインビューへの切替はできません。


「As 表示列」というのは、データ1・データ2を同一列として表示する際の名前の指定
です(指定しなくても同一列に扱われる場合もありますが、フィールド名が異なる場合は
こうして宣言してやった方が無難)。
 *クエリA・Bで「由来」を削除した場合、こちらの「,クエリ○.由来」も削除して下さい。


ちなみに上の文だと、元のテーブルやクエリの重複データは非表示(=1データに集約)です。
もし、重複分をそのまま表示したい場合は、元のクエリ(今回の例ではクエリA・クエリB)
の「DISTINCT(固有の値=はい)」の指定を解除した上で、

Select クエリA.データ1 As 表示列,クエリA.由来 From クエリA
UNION All
Select クエリB.データ2 As 表示列,クエリB.由来 From クエリB;

と、「Union」の後に「All」を追加すればOKです。
(どんなときに必要になるのかは私もわかっていないんですが・・・一応、参考までに)

No.2・No.4です。

> 少し勉強のお付き合いをしていただいて良いでしょうか?

はい。
ではまず、前回作成して戴いたクエリを、それぞれ以下のように変更して下さい。
(SQL文はそれぞれ全文のコピー&ペースト(上書き)でOKです);

※「テーブル1→テーブル2」型 ; クエリ名=クエリA
SELECT DISTINCT テーブル1.データ1, "テーブル1" AS 由来
FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.データ1 = テーブル2.データ2
WHERE (((テーブル2.データ2) Is Null))
ORDER BY テーブル1.データ1;

...続きを読む

Qactionscript アルファベットを数値に変換できる?

Flash Actionscriptの開発で困ってます。
テキストフィールド1とテキストフィールド2があります。それぞれのフィールドに入力されたアルファベットを数値に変換(例えばAと入力されたら1、Bなら2、Cなら3)して、A+B=3のように足し算して返すにはどうしたらよいでしょうか??
こういうのを覆面算?っていうんでしょうか。

Aベストアンサー

ご使用の Flash のバージョンや ActionScript のバージョンなどがわかりませんので,
何とも言えませんが...。
(何とも言えないというのは場合によって答えがありすぎて,つまり変わりすぎて回答のしようがないということです。)



普通考えるのは ASCIIコード で対象参照すれば良いのではないでしょうか。
しかし,
規則が不規則な場合は配列やハッシュ(ハッシュもどき:結合配列)を使うかもしれません。



ActionScript1.0 or 2.0 で ASCII コードを使う方法

新規ドキュメントを作成して
フレーム1 に次のスクリプトをコピペして
「制御」→「ムービープレビュー」

-------------------------------------------------
// 変数 my_str の値を "A" とする
my_str = "A";
// 変数 my_str の 1 番目の文字を ASCII コードで出力
trace(my_str.charCodeAt(0));
// ↑ココで 65 が返るので 64 を引いてやる
trace(my_str.charCodeAt(0)-64);

// ↓"B"に関してもやってみる
my_str = "B";
trace(my_str.charCodeAt(0)-64);
// ↑ちゃんと 2 が返る
-------------------------------------------------



ActionScript1.0 or 2.0 で ハッシュもどきを使う方法

新規ドキュメントを作成して
フレーム1 に次のスクリプトをコピペして
「制御」→「ムービープレビュー」

-------------------------------------------------
// 変数 STR という Object を作成
STR = new Object();
// "A"エレメントの値を1,"B"エレメントの値を2,"C"エレメントの値を1 とする
STR = {A:1, B:2, C:30};

// "A"エレメントの値を取り出してみる
trace(STR["A"]);
// "B"エレメントの値を取り出してみる
trace(STR["B"]);
// "C"エレメントの値を取り出してみる
trace(STR["C"]);
// ↑ ちゃんと 「1」 「2」 「30」 が返りますね

// ちなみに値の型は何?
trace(typeof (STR["A"]));
// ↑numuber(数値) です
-------------------------------------------------



※ ASCII や ハッシュ が使えないバージョンでも
  場合によっては if文 を使えば乗り切れます。

ご使用の Flash のバージョンや ActionScript のバージョンなどがわかりませんので,
何とも言えませんが...。
(何とも言えないというのは場合によって答えがありすぎて,つまり変わりすぎて回答のしようがないということです。)



普通考えるのは ASCIIコード で対象参照すれば良いのではないでしょうか。
しかし,
規則が不規則な場合は配列やハッシュ(ハッシュもどき:結合配列)を使うかもしれません。



ActionScript1.0 or 2.0 で ASCII コードを使う方法

新規ドキュメントを作成して
フ...続きを読む

QACCESS ACCESS VBA テーブル テーブル変換 番号 個数 変換

私はプログラム初心者です。
業務の中でACCESSを使っております。
ACCESSでテーブルの変換についてのプログラムが分からなかったので
質問させて頂きました。


以下のようなテーブル(テーブル1)があります。
管理番号|NO|名前
1|NO.1|スプーン
2|NO.2|スプーン
3|NO.3|スプーン
4|NO.1|フォーク
5|NO.2|フォーク
6|""|ナイフ
7|NO.1|お鍋
以上のテーブルを新たにテーブル(テーブル2)を作成し、次のようなにしたいです。
管理番号|台数|名前
1|3|スプーン
4|2|フォーク
6|1|ナイフ
7|1|お鍋

テーブル変換の機能
・名前が同じ物の個数を表示する
・名前が同じ物の管理番号は若い番号にする

よろしくお願いいたします。

Aベストアンサー

Access2003でのクエリ作成手順になります。(他バージョンでもほぼ同じでしょう)

・「デザインビューでクエリを作成する」から対象のテーブルを表示させます。

・クエリデザインツールバーにある「Σ」をクリックします。
 (デザインの欄に「集計」が追加されます)

 もしくは、クエリの種類を1度「クロス集計」にし、「選択」に戻しても同じ状態になります。

・テーブル内の「管理番号」をダブルクリックします。
 フィールドに「管理番号」、テーブルに対象テーブル名、集計に「グループ化」が表示されます。
 集計のところを「最小」に変更します。
 並べ替えのところを「昇順」に変更します。

・テーブル内の「NO」をダブルクリックします。
 フィールドに「NO」、テーブルに対象テーブル名、集計に「グループ化」が表示されます。
 集計のところを「カウント」に変更します。

・テーブル内の「名前」をダブルクリックします。
 フィールドに「名前」、テーブルに対象テーブル名、集計に「グループ化」が表示されます。

・ここで、表示を「データシートビュー」に切り替えます。(注1)
 管理番号の最小、NOのカウント、名前 の表が表示されます。
 名前「ナイフ」部分のカウントが得たいものではなく「0」になっています。
 これは、NULLのデータはカウント対象外となっているためです。

・表示を「SQLビュー」に切り替えます。
 1行目中ほどに 「 Count(テーブル名.[NO]) AS NOのカウント, 」があります。
 NOに限定した個数を求めるのでなく、単にレコード数を得たいので
 これを 「 Count(*) AS 台数, 」に書き換えます。
 XXXXX AS YYYY は、XXXXXをYYYY名で、という意味合いになるので、
 同様に「管理番号の最小」->「管理番号」に修正します。

・表示を「データシートビュー」に切り替えます。

これで求めたいクエリは作成することができました。
このクエリをそのまま使うのではなく、結果をテーブルに書き出すには続いて以下を行います。

・表示を「クエリ デザイン」に切り替えます。

・メニューの「クエリ」->「テーブル作成」をクリックします。
 テーブル名を入力し、「OK」

 クエリデザイン上変化はありませんが、以上で終了です。

確認)
表示を「SQLビュー」に切り替えます。
1行目最後あたりに、「 INTO テーブル名 」が追加されています。
これが結果をテーブルに書き出す命令部分になります。


(注1)
「'*'で選択したフィールドはグループ化できません。」というメッセージが出たら、クエリ作成をいったんあきらめます。
(クエリデザインの画面を閉じます)
メニューの「ツール」->「オプション」の「テーブル/クエリ」タブの「クエリ デザイン」部分の「全てのフィールドを表示する」チェックを外し「OK」します。
クエリ作成を初めからやり直します。

(注2)
(注1)の変更は、以降も変更されたままとなるので、今回だけ回避するには、
表示を「SQLビュー」にし、1行目最後の「 テーブル名.名前, * 」の「 , * 」を削除します。


書く練習がてら、初心者向けに書いてみましたがいかがでしたでしょうか。

Access2003でのクエリ作成手順になります。(他バージョンでもほぼ同じでしょう)

・「デザインビューでクエリを作成する」から対象のテーブルを表示させます。

・クエリデザインツールバーにある「Σ」をクリックします。
 (デザインの欄に「集計」が追加されます)

 もしくは、クエリの種類を1度「クロス集計」にし、「選択」に戻しても同じ状態になります。

・テーブル内の「管理番号」をダブルクリックします。
 フィールドに「管理番号」、テーブルに対象テーブル名、集計に「グループ化」...続きを読む

QPHPで、日本語からアルファベットに変換

PHP初心者です。
PHPプログラム上で、日本語からアルファベットに変換する書き方を探しています。
漢字仮名まじりの日本語を、アルファベットに変換できますか?

自分では、
$str = mb_convert_encoding($title,"ascii","UTF-8");
という風にやってみましたが、できませんでした。

どなたかお知恵をお貸しください。

Aベストアンサー

>> 日本語からアルファベットに変換する書き方を探しています。

ローマ字に変換する必要は無いのですよね?

英数字でもよいのなら
base64_encode("日本語");

アルファベットだけでなく数字や%などが混じっても良いのなら
urlencode("日本語")

いずれも逆の変換で元の日本語にも戻せます

Q選択クエリーで 2つのテーブルの項目が Null どうしのデータを抽出するには?

初心者です、教えてください。

テーブルが、2つあって
テーブル名: T1 T2
フィールド1: A1 B1
フィールド2: A2 B2
フィールド3: A3 B3
とあった時、選択クエリーで T1 と T2 のフィールドの A1-B1、A2-B2、A3-B3 が、
一致したものを表示するクエリーを作成します。
でも、A2、A3、B2、B3のデータ中には、それぞれ Null値が入っていて、
A2-B2、または、A3-B3 が、Nullどうしなら、一致とみなして、表示するには、
どうしたらいいのでしょうか?

Nullのみどうしのデータで、Nullのフィールドを
除いた選択クエリーをつくって、あとで合わせてもいいのですが、
実際のテーブルは、そういうフィールドが、いっぱいあって、大変なんです。

簡単に表示する方法は、あるでしょうか?

初心者なのでむずかしいことは、
やったことがなくて、すいませんが、わかる方がいらっしゃたら、お願いします。

Aベストアンサー

MS|ACCESSは持ってないので正確ではないかもしれませんが
。あっ、その前に表示させるときリストボックスで表示させるのかフォームで表示させたいのか書かれたほうがアドバイスが増えるかもしれません。

取り敢えず、書式タブの規定値を'0'にすればいいかも。
詳しいことは以下を参考にしてください。

参考URL:http://ac.accessclub.jp/beginer/cd/part_07.htm

Qかなで書かれた文字をアルファベットに変換できませんか?

エクセルででも、なんででもいいのですが、かなで書かれた文字をアルファベットに一度に変換できないでしょうか? たとえば、エクセルの関数phonetic を使えば、漢字を仮名に変換できますよね? それと同じように、仮名をアルファベットに変換する方法はないでしょうか? もし、そんな便利なことができたら、とってもうれしいのですが。。

よろしくお願いいたします。m(__)m

Aベストアンサー

以前、似た質問に回答しました。

No.806286 質問:Excelで五十音順に並べ替えたい
http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

No.8の手順3)で、

kakasi -Kj -Jj

を実行すると、

(株)アイウエオ
(株)イノウエ
(株)ウラシマ
(株)阿部商店
(株)石井商店
(有)アイウエオ

(kabu)aiueo
(kabu)inoue
(kabu)urashima
(kabu)abeshouten
(kabu)ishiishouten
(ari)aiueo

と変換できました。

参考URL:http://kakasi.namazu.org/, http://oshiete1.goo.ne.jp/kotaeru.php3?q=806286

QACCESS クエリの抽出項目をEXCELから

Access2000のクエリの抽出項目をExcel2013の内容を抽出項目として指定するにはどうすればよいでしょうか。

Excelには、
佐藤
田中
鈴木
.........
のように縦に名前が最大18名分入っています。

この(最大)18名の名前をAccessの抽出項目とします(フィールドは10あってその6番目に抽出項目を18名分入力したいのです)。
18名を一人一人コピペしていたのですが、何とか簡素化できないものかな?と思っています。

できれば、マクロで一発で抽出項目を貼り付けたいのですが。
よろしくお願いします。

Aベストアンサー

#7です

修正量がそう多くなかったので回答してみます。

修正点
・ハイパーリンクしない
・出来上がるシート名は「1R」「2R」・・・「xR」
・抽出内容が無くてもシートは初期化する
・騎手名は C1 から始まり、終了は空白が2行続いたら
 (24 に限定せず、書かれていた分を処理する)


Public Sub Samp2()
  Dim cn As Object, rs As Object
  Dim sSql As String, sS As String
  Dim v As Variant
  Dim iRow As Long, iRowN As Long, iR As Long
  Dim i As Integer
  Const adStateOpen = 1
  Const PN2007 As String = "Microsoft.ACE.OLEDB.12.0"
  Const PN2003 As String = "Microsoft.Jet.OLEDB.4.0"
  Const CMDB As String = "\2014.mdb"
  Const CSQL = "SELECT * FROM 2014 WHERE 騎手名 IN ('{%1}');"

  On Error Resume Next
  Set cn = CreateObject("ADODB.Connection")
  For Each v In Array(PN2007, PN2003)
    cn.Open "Provider=" & v _
      & ";Data Source=" & ThisWorkbook.Path & CMDB
    If (cn.State = adStateOpen) Then Exit For
  Next
  If (IsEmpty(v)) Then
    MsgBox "環境不足で処理中断", vbCritical
    Set cn = Nothing
    Exit Sub
  End If
  On Error GoTo 0

  Application.ScreenUpdating = False
  With Worksheets("SheetDB")
    iR = 1
    iRow = 1
    While (.Cells(iRow, "C") <> "")
      iRowN = iRow
      With .Cells(iRow, "C")
        If (.Offset(1) <> "") Then iRowN = .End(xlDown).Row
        v = WorksheetFunction.Transpose(.Resize(iRowN - iRow + 1))
      End With
      If (IsArray(v)) Then
        sSql = Replace(CSQL, "{%1}", Join(v, "','"))
      Else
        sSql = Replace(CSQL, "{%1}", v)
      End If

      sS = iR & "R"
      For Each v In Worksheets
        If (v.Name = sS) Then Exit For
      Next
      If (IsEmpty(v)) Then
        With Worksheets.Add(After:=Worksheets(Worksheets.Count))
          .Name = sS
        End With
      Else
        v.Activate
        Cells.ClearContents
      End If

      Set rs = cn.Execute(sSql)
      If (Not rs.EOF) Then
        With Range("A1")
          For i = 0 To rs.Fields.Count - 1
            .Offset(, i) = rs(i).Name
          Next
          .Offset(1).CopyFromRecordset rs
        End With
      End If
      rs.Close
      Set rs = Nothing
      iRow = iRowN + 2
      iR = iR + 1
    Wend
    .Activate
  End With
  cn.Close
  Set cn = Nothing
  Application.ScreenUpdating = True
End Sub

#7です

修正量がそう多くなかったので回答してみます。

修正点
・ハイパーリンクしない
・出来上がるシート名は「1R」「2R」・・・「xR」
・抽出内容が無くてもシートは初期化する
・騎手名は C1 から始まり、終了は空白が2行続いたら
 (24 に限定せず、書かれていた分を処理する)


Public Sub Samp2()
  Dim cn As Object, rs As Object
  Dim sSql As String, sS As String
  Dim v As Variant
  Dim iRow As Long, iRowN As Long, iR As Long
  Dim i As Integer
  Const adStateOpen = 1...続きを読む

Q全角アルファベットを半角アルファベットに変換

Word 2003 で文書中の全角アルファベットを半角アルファベットに一括変換するにはどうすればよいでしょうか。一括が無理なら、個別でもかまいません。

Aベストアンサー

全角英字を半角に一括にするなら検索を使ってはいかが。
[検索]ダイアログで[ワイルドカード]にチェックを入れておきます。

検索する文字列 : [A-Z]  (AとZは全角英字にして記号は半角)

[見つかったすべての項目を強調表示する]へとチェックを入れます。
これで[すべて検索]ボタンを押します。

全角英字がすべて選択されたら、ANo.1の回答にもある[文字種の変換]
をします。

QACCESSでクエリ作成時複数のフィールドを同じマスタ項目から抽出する方法

ACCESSでクエリを作成しています。テーブルは”売上明細”と”社員マスタ”があります。売上明細には”担当者CD”と”加工者CD”というフィールドがあって、それぞれのフィールドが、同じ社員マスタの”社員CD”をキーに”社員名”を抽出したいのですが、「あいまいな外部結合が含まれているので、SQLステートメントを実行できません。第一次結合を実行する分割クエリを作成し、SQLステートメントにそのクエリを含めてください」とメッセージが出ます。どこにどのように設定すればいいのでしょうか?優先順位は特にありませんが、最初に設定されている担当者CDを第一次結合とする場合どうすればいいのでしょうか?この第一次・第二次はどのような意味があるのでしょうか?まだVBAは手付かずで、初心者です!これから学習しようとしているところです。よろしくお願いいたします。

Aベストアンサー

ひとつのテーブルの異なるフィールドが同じテーブルを参照しているわけですね
こういう場合はひとつのテーブルを2つのフィールドに結合するのではなく
同じテーブルを別の名前で結合します

クエリデザインビューでの操作だと、社員マスタを2回クエリデザインビューに取り込み
(2つ目は異なる名前で取り込まれます)
担当者と、加工者に別々に結合します


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報