- ベストアンサー
SQL文で・・・
storkの回答
- stork
- ベストアンサー率34% (97/285)
||を使っているのはあんまり見たことがないですね。 K1 || K2 || K3の意味はどうやら、 K1,K2,K3を単純に文字連結したもののようです。
関連するQ&A
- こんなSQL文
Oracle8.1.7を使用しております。 以下のようなテーブルに対し、1行目と2行目を削除するSQL文を書きたいのですが、思いつきません。どなたか、アドバイスいただけないでしょうか? 表名:A B | C ―――――――― 2 | 10 2 | 1 1 | 10 1 | 1 1 | 11 1 | 2 1 | 1 3 | 10 2 | 3 変数として、P1=1とP2=2があります。(これは、SQL文の中に直接書くものとします。) ここで、SELECT B,C FROM A WHERE B=1;とSELECT B,C FROM A WHERE B=2;を実行すると、次のようになります。 B | C B | C ――――――――― ――――――――― 1 | 10 2 | 10 1 | 1 2 | 1 1 | 11 2 | 3 1 | 2 1 | 1 ここで、それぞれの表を見ると、Cの値が一致している部分があります。この一致していて、Bが2の行を削除したいのですが、SQL1文では無理でしょうか? 最近、SQLには慣れてきたつもりだったのですが、こんなとこでつまずくとは・・・どうぞよろしくお願いします。
- ベストアンサー
- その他(データベース)
- SQL文について
開発言語:VB2010 DB:SqlServer2005 及び ACCESS2007 SQLサーバーのテーブルをAccessのテーブルへINSERTしたいのですが、 一文で行う事は可能でしょうか? (テーブルの構造は全く同じです) 同じDB内であれば、下記のような感じで出来ると思うんですが。 +----------------------------------+ INSERT into Atest_ACCESS SELECT * FROM Btest_SQL Where OperationDate => 2011/09/05 +----------------------------------+ 出来るのあればどのようにすれば良いのが教えて頂けると幸いです。 よろしくお願い致します。
- ベストアンサー
- Visual Basic
- SQL文のWhereについて
SQL文を分析している最中ですが、以下の構文の意味がわかりません。 where Aテーブル.Aフィールド = Bテーブル.Aフィールド and Aテーブル.Aフィールド = Cテーブル.Aフィールド(+) and Aテーブル.Aフィールド = Dテーブル.Aフィールド(+) この構文の「(+)」の意味を教えて下さい。 宜しくお願い致します。
- ベストアンサー
- Oracle
- 文字を数字に変換したい
こんにちは SQL文で困っています。 SQL = "select * from LIBL.APF" SQL = SQL & " WHERE AAAA = '" & aaaa & "'" を発行した時にエラーが出ます。 SQL = "select * from LIBL.APF" SQL = SQL & " WHERE AAAA = '1000'" 直接文字列を打つと同じエラーがでます。 SQL = "select * from LIBL.APF" SQL = SQL & " WHERE AAAA = 1000" 直接数字を打つと正常に動作します。 データーベースのフィールド属性が数字なのでこのエラーが出ていると思い syanoを数字フィールドにしようと aaaa=1000+0 などやってみたのですが、計算はできても、中身は1000という文字になっているようです。 AS/400のデーターベースをCAで参照しIIS5.0で表示させたいのでフィールド属性は変える事ができませんので、どうしてもaaaaを数字にしたいのですがどうしたら良いのかわかりません どなたかご教授お願いします。
- ベストアンサー
- Microsoft ASP
- SQL文の連結が、うまくいきません
いつもお世話になっております。 現在、SQL文生成プログラムを作成しているのですが エラーメッセージ 「Microsoft OLE DB Provider for SQL Server (0x80040E14) '.' 付近に不適切な構文があります。」 表示されて、どうしても解決出来ません ソースを記載しますのでアドバイス頂けないでしょうか? デバッガーみたいな事をさせてしまい、本当に申し訳ありません 開発者自分一人(ほぼ初めて)で、どうにも進みませんでしたので お願いいたします。 ※--ASPのデバッグに関して もう一つお聞きしたいのですが (出来ればこちらの質問も答えてくださると幸いです) 皆さんは、ASPのデバッグをどの様に行っていますか? VB6.0やVBAの場合は、ソースが不完全やエラーでも 「F8」を押して、ソースの途中まで稼働させて 「現在格納されている変数の中身」等を確認して 割とエラー解決もスムーズに出来ましたが、ASPではそれが出来ないため 難航しています(Line*** と エラーメッセージだけを頼りに) 皆さんはASPの場合、どの様にエラー解消されていますか? (どうにかして、自分一人でも安定して成果をあげていきたいので) 我流でも結構ですので、是非アドバイスお願いします SQL生成ソース '--SQL生成 strSQL = "select * from STA040, STA500M7" '--SQL作成(抽出場合分け) if check = "Day" then strSQL = strSQL + "where STA500M7.CODE040 = STA040.CODE" '--期日空白処理 Blank_out J_days_st,N_days_st,M_days_st,J_days_ed,N_days_ed,M_days_ed '--受注日BetWeen if J_days_st <> "" and J_days_ed <> "" then strSQL = strSQL + " and STA500M7.YYMMDD_1 BETWEEN " & J_days_st_sql & " and " & J_days_ed_sql & " " '--受注日start○,End× Elseif J_days_st <> "" and J_days_ed = "" then strSQL = strSQL + " and STA500M7.YYMMDD_1 >= " & J_days_st_sql & " " '--受注日start×,End○ Elseif J_days_st = "" and J_days_ed <> "" then strSQL = strSQL + " and STA500M7.YYMMDD_1 <= " & J_days_st_sql & " " '--受注日start×,End× Elseif J_days_st = "" and J_days_ed = "" then End if '--納期BetWeen If N_days_st <> "" and N_days_ed <> "" then strSQL = strSQL + " and STA500M7.YYMMDD_3 BETWEEN " & N_days_st_sql & " and " & N_days_ed_sql & " " '--受注日start○,End× Elseif N_days_st <> "" and N_days_ed = "" then strSQL = strSQL + " and STA500M7.YYMMDD_3 >= " & N_days_st_sql & " " '--受注日start×,End○ Elseif N_days_st = "" and N_days_ed <> "" then strSQL = strSQL + " and STA500M7.YYMMDD_3 <= " & N_days_st_sql & " " '--受注日start×,End× Elseif N_days_st = "" and N_days_ed = "" then End if '--見積日BetWeen If M_days_st <> "" and M_days_ed <> "" then strSQL = strSQL + " and STA500M7.YYMMDD_10 BETWEEN " & M_days_st_sql & " and " & M_days_ed_sql & " " '--見積日start○,End× Elseif M_days_st <> "" and M_days_ed = "" then strSQL = strSQL + " and STA500M7.YYMMDD_10 >= " & M_days_st_sql & " " '--納期start×,End○ Elseif M_days_st = "" and M_days_ed <> "" then strSQL = strSQL + " and STA500M7.YYMMDD_10 <= " & M_days_st_sql & " " '--納期start×,End× Elseif M_days_st = "" and M_days_ed = "" then End if 'strSQL = strSQL + "order by sta500m7.code ASC" 'strSQL = "select * from STA040,STA500M7 where STA500M7.CODE040 = STA040.CODE and STA500M7.YYMMDD_3 >= " & hiduke & " " 'strSQL = strSQL + " order by sta500m7.code DESC;" End if '↓ここがエラーだと表示されます(おそらくSQLが問題かと) Set objRS = objCon.Execute(strSQL)'レコードセットのオープン アドバイスお願いいたします
- ベストアンサー
- Microsoft ASP
- SQL文でフィールド名を変動的にできますか?
VB.NETにてアクセスのMDBへSQLを使って直に書き込むコーディングについて疑問があります。 例えば、 cmnd.CommandText = "UPDATE 野菜テーブル SET 野菜カゴ1 = '" & 野菜名 & _ '" WHERE 条件文・・・" このように野菜テーブルのフィールド「野菜カゴ1」へある野菜をアップデートするSQLコマンド文があるとします。 しかし、アップデートする際、野菜カゴも都度変動する場合(例えばカゴが1~5ある等)はどのようなSQL文となるのでしょうか?フィールド名に変数を使用できるのでしょうか?方法をお知りの方がいましたらご教授願います。
- ベストアンサー
- Visual Basic
- RANGEの使い方
vb.net2008を使用しております。 エクセルのセルへの一括書き込みで ExcelSheet.Range("K2:K118") = "AAAA" とした場合 K2~K118に AAAA が書き込まれるのは わかったのですが K118のセルが 任意に変わる場合 K118 のところの 記述はどうすればよろしいのでしょうか? よろしくお願いします。
- ベストアンサー
- Visual Basic
- SQLで時間の比較
SQLで時間の比較 DBの情報tbltimeとソース内で取得したdTimeNowを比較したいのですがうまく実行されません。 SQLで現在時間を取得する{fn Now}を使用するとうまくいきますが、今回はソースのプロパティを使用したいです。 "Select * FROM tblA WHERE tbltime < " & dTimeNow tbltimeはDate型で2010/01/01 11:11:11のように設定されています。 スペースがあるからうまくいかないのかなとも思うのですが、どうしたらうまく比較できるのでしょうか? ご教授よろしくお願い致します。 環境 SQL Server 2005 VB.net
- ベストアンサー
- SQL Server
- ACCESS2002のupdateの副問合せについて教えてください
ひとつのテーブルの情報を、もうひとつのテーブルに反映させられなくて困っています。 おそらくupdateの副問合せの書き方が悪いと思うのですが、どこが悪いのか分かりません。 access2002 VBAで、同じフィールド構成を持つ2つのテーブルがあります。 TABLE_A -------------------------- |P_Key | Field1 | Fieled2| +------+--------+--------+ |111111|AAAA|BBBB| |222222|CCCC|DDDD| |333333|EEEE|FFFF| |444444|GGGG|HHHH| -------------------------- TABLE_B -------------------------- |P_Key | Field1 | Fieled2| +------+--------+--------+ |222222|ZZZZ|YYYY| |333333|XXXX|WWWW| -------------------------- このうち、ひとつのテーブル(TABLE_A)のField1 と Field2 の値を もうひとつのテーブル(TABLE_B)のField1 と Field2 の値に変更したいのです。 条件は、P_Keyが同一のレコード同士です。 実行結果は以下のようにしたいのです。 TABLE_A (TABLE_Bは更新しないため変更無し) -------------------------- |P_Key | Field1 | Fieled2| +------+--------+--------+ |111111|AAAA|BBBB| |222222|ZZZZ|YYYY| |333333|XXXX|WWWW| |444444|GGGG|HHHH| -------------------------- VBAでupdateのSQLを書いているのですが、うまくいきません。 以下のSQLではDMLが正しくないのエラーになってしまいます。 (すみません。正式なエラーメッセージは失念しました) update TABLE_A set( TABLE_A.Field1,TABLE_A.Field2 ) = ( select TABLE_B.Field1,TABLE_B.Field2 from TABLE_B where TABLE_A.P_Key = TABLE_B.P_Key ); テーブル名に別名をつけたりしても同様にDMLが正しくないと怒られます。 質問は、以下の2つです。 1.上記更新は、ひとつのupdateのSQLで可能でしょうか? それともTABLE_B を Selectでまわして、TABLE_Aのレコードを一行ずつ 更新していく必要があるのでしょうか? 2.1.が可能の場合、私の書いたSQLについてご助言をいただけませんでしょうか? もしご存知の方おられましたら、ご教示をお願いできませんでしょうか? 以上です
- ベストアンサー
- その他(データベース)
お礼
そうですよね。私なりにも調べてみたのですが、storkさんがおっしゃったように 文字列の連結とかいてありました。 上記のプログラムでK1, K2, K3が変数として宣言も処理もなかったので(ネット上のサンプルプログラム)もしかしたらこの3つはフィールドかと勝手に(?)おもってしまいました。