SQL Server

全2973件中1741~1760件表示
  • betweenで境界値が取得できない。

    連番の歯抜け値を取得するSQLを作りたいと思っています。 例えば、カラムAに、1,2,3,5,6,7,9,10(4と8が抜けている) と数値の入っているテーブルAがあるとします。 これに対して、 SELECT MIN(カラムA + 1) FROM テーブルA WHERE (カラムA + 1) NOT IN (SELECT カラムA FROM テーブルA) とSQLを投げた場合、4が取得できます。 これにbetween句を付与したいのですが、そうすると境界値が なぜか取れなくて困ってます。 具体的には、 SELECT MIN(カラムA + 1) FROM テーブルA WHERE (カラムA + 1) NOT IN (SELECT カラムA FROM テーブルA) AND BETWEEN 8 AND 10 とした場合、NULLが返ってきてしまいます。 普通、BETWEENは境界値も対象になるはずですが、何故このような 結果になってしまうのでしょうか? 修正点をご教授いただけないでしょうか? 宜しくお願いします。

    • ginfix
    • 回答数4
  • 解けずにおりますクエリの解をご教授下さい。

    以下定義のレコードを基準日毎に処理をして行きます。 処理の途中で変更フラグに"9"が出現した時、項目1が同一である 基準日~銘柄コード項目に付いて、直前レコードの値を取得したいのですが。 以下の場合ですと、アスタリスクの項目1の値を持つ最新のレコードは アットマークのレコードになります。 従いまして"080613|1|001|CD0002"を取り出したいのですが。 ちなみに基準日~銘柄コードはキー項目の為、一意になっています。 いろいろ試しましたが、上手く取り出せません。 ご教授下さいます様、よろしくお願いいたします。 環境:SQL Server2005 基準日|変更フラグ|連番|銘柄コード|項目1 080612|1|001|CD0002|01010101 @ 080613|1|001|CD0002|01010101 080614|1|001|CD0001|11001100 080614|1|002|CD0002|11111111 080615|1|001|CD0001|10101010 * 080615|9|002|CD0002|01010101 080615|1|003|CD0002|01010100

    • ken__t
    • 回答数3
  • 同じクエリ内で作成した項目のエイリアスを、別の列を作成する要素として参照したい

    お世話になります。 ACCESS2003のクエリからSQL2005のストアドへ移行作業をしております。 アクセスで同じクエリ内で作成した項目のエイリアスを、別の列を作成する要素として利用できたのですが、ストアドではできないのでしょうか? 記述の方法が違うのか、全くできないのか、他に何かよい方法があればご教示ください。 例> MyCOLaをMyCOLbで利用したいのです。 INSERT INTO TABLE1(COLa,COLb) select 'convert(money,650) as MyCOLa,convert(money,[MyCOLa]*1.05) as MyCOLb

  • accessの次のデータベース

    質問させていただきます。 今現在accessでデータベースを構築し、20万から30万件のデータを6名程度で入力しています。当たり前ですがレスポンスは落ちています。 ファイルが破壊してしまうのと、入力した後オペレータが検索して使用するので、レスポンスが遅いと業務に支障が出てしまいます。 accessは複数での使用に適していないことや、データ量のこともあり他のデータベースに移ろうと考えています。 SQLのexpressや、PHP+MYSQLなどを考えているのですが、私のスキル的にできるかぎり簡単にできる方法を探しています。 accessの危険をとりあえず回避したのち、きちんとしたデータベースの勉強をして強化できればと思っています。 MSDEを使用し、データテーブルのみをサーバーに移し、accessをフロントエンドで使用する方法を聞いたのですが、この方法だとクエリをクライアント側で実行するのでレスポンス的にはあまり変わらないような気がします。 何かいい方法があればご教授お願いいたします。

  • SQL Server 2000 - bulk insert

    SQL Server 2000でのbulk insert とはどういうものなのでしょうか? csvなどをテーブルに一括で更新できてしまうものでイメージはよいのでしょうか?csvにヘッダーがある場合除くなどもできたりするのでしょうか? できれば、具体的なコマンドの書き方もご教示ください。 よろしくお願いします。

  • SqlServer2005 レプリケーションの一時停止

    SqlServer2005でレプリケーションで困ってしまいました・・ データベースで ALTER DATABASE サーバ名 SET READ_COMMITTED_SNAPSHOT ON を実行しようとすると、エラーメッセージで、 「レプリケーション中は出来ません」の様なメッセージが 出てしまい上手くいきません。 どなたか、止める方法をご存知なら教えて頂けませんでしょうか? すいません。よろしくお願いします。

  • SQLServerの仕様?バグ?

    以下のデータ、条件でクエリを発行しました。 ■環境 SQLServer2005(データベースはSQLServer2000) ■テーブルA 社員番号 社員名 商品 金額 ---------------------------- 00001 社員A 商品A 100 00002 社員B 商品A 100 00002 社員B 商品B 100 00003 社員C 商品B 100 ■クエリ SELECT COUNT(*) FROM テーブルA WHERE 社員番号 = (1) GROUP BY 社員番号 ここで質問です。 (1)に'0002'と入れたときは「2」と返ってきますが、 (1)に'0004'と入れた場合、結果何も返ってこない(ゼロすら返ってこない)のですが これは仕様なのでしょうか?バグなのでしょうか? そもそもGROUP BYが必要ないということは承知しております。 どなたかお分かりになる方、いらっしゃいますでしょうか。 よろしくお願い致します。

  • SQLサーバの設定について

    今まで使用していたAccessのデータをWindowsServer2003とSQLServer2000のサーバマシンにデータ(テーブル)のインポートをすることができました。 同じネットワーク上のWindowsXPProのPCからAccess2000で作ったMDBでこのサーバマシンのテーブルにリンクしODBC接続で接続して書き込み、削除などもできています。 ここまではいいのですが、4人程度が同時に接続して運用する場合、何かサーバ側の設定しておくべき点があったら教えていただけるとありがたいです。 現状SQLサーバで特別な設定をしているわけではないのでただ動いているだけです。 (セキュリティーやバックアップなど何もわかりません。) 以上、よろしくお願いします。

    • yngway
    • 回答数2
  • T-SQLとACCESSクエリのSELECT分内のif文の利用について

    お世話になります。 ACCESSクエリからSQLServer2005のストアドに移行を検討中です。 ACCESSクエリではINSERT INTO時のSELECT内にIIF文による条件分岐が使えたのですが、T-SQLでは、INSERT INTO時のSELECT内にIF文やswitch文は使えないのでしょうか?その場合、どのようにすれば宜しいでしょうか? 例> ACCESSクエリでは以下のようにかけると思うのですが・・・ INSERT INTO Table1 (Pコード,単価) SELECT Table2.Pコード,IIf(Table2.Check定価=1,Table2.定価A*Table3.値引率,Table2.定価B*Table3.値引率) FROM Table2 RIGHT JOIN Table3 ON Table2.Pコード = Table3.Pコード; 宜しくお願いします。

  • SQL文のINNER JOIN内での条件付けについて質問です

    SQLの質問です。 先程も質問させて頂いた件(http://okwave.jp/qa4089307.html)に派生した問題なのですが、 Accessのクエリにて SELECT A.*FROM grade_points AS A INNER JOIN [SELECT MAX(enforcement_date) AS MaxDate,grade_id FROM grade_points WHERE (enforcement_date)<=date() GROUP BY grade_id]. AS B ON (A.grade_id = B.grade_id) AND (A.enforcement_date = B.MaxDate); (前回の件のクエリにWHERE (enforcement_date)<=date() の条件を追加しました) というクエリを作ると、SQLを書いた直後の保存前はちゃんと動くのですが、保存後に閉じてから実行しようとすると「入力テーブルまたはクエリ(上記[]内SQL文)が見つかりません」というエラーになってしまいます。 INNER JOIN内のSQLにWhere条件は使えないのでしょうか??保存前は動くので不思議でなりません… お手数ですがどなたかご意見よろしくお願い致します。

    • noname#169207
    • 回答数1
  • SQLの質問です

    SQL初心者の質問です。下記のように違うdateを持つ同じgrade_idがいくつか存在するテーブルから、最新のdateのgrade_idを選択してその列の他の情報(point)も持って来たい場合、どんなSQL文が最適でしょうか?Disthinctを使ってもうまくできずに困っています…よろしくお願い致します。 id ・ date ・ grade_id ・ point 1 ・ 2008/05/01 ・ 1 ・ 6 2 ・ 2008/10/01 ・ 1 ・ 1 3 ・ 2000/08/08 ・ 2 ・ 2 4 ・2008/05/01 ・ 2 ・ 8

    • noname#169207
    • 回答数2
  • SQLの質問です

    SQL初心者の質問です。下記のように違うdateを持つ同じgrade_idがいくつか存在するテーブルから、最新のdateのgrade_idを選択してその列の他の情報(point)も持って来たい場合、どんなSQL文が最適でしょうか?Disthinctを使ってもうまくできずに困っています…よろしくお願い致します。 id date grade_id point 1 2008/05/01 1 6 2 2008/10/01 1 1 3 2000/08/08 2 2 4 2008/05/01 2 8

    • noname#169207
    • 回答数2
  • SQL ServerのXMLスキーマがうまくいきません。

    「SQL Server 2005 Express」を使用しています。 次のようなスキーマをサーバーに登録して CREATE XML SCHEMA COLLECTION dbo.schema_test AS N'<?xml version="1.0" encoding="UTF-16"?> <xsd:schema targetNamespace="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:element name="root">  <xsd:complexType mixed="true">   <xsd:choice>    <xsd:element name="A" type="xsd:string" />    <xsd:element name="B" type="xsd:string" />    <xsd:element name="C" type="xsd:string" />   </xsd:choice>  </xsd:complexType> </xsd:element> </xsd:schema>' ; つぎのようなクエリを試したのですが、 「メッセージ 6913、レベル 16、状態 1、行 5 XML 検証: 要素 'root' の宣言が見つかりませんでした。場所: /*:root[1]」 というエラーメッセージが表示されてしまいます。 DECLARE @xml xml (dbo.schema_text) SET @xml = '<root> <A>AAA</A> <B>BBB</B> <C>ooo</C> </root> ' どなたか分かる方がいらっしゃいましたら、 アドバイスをお願いいたします。

    • graf_
    • 回答数1
  • 同じPC内のSQLServerにリモート接続許可されない

    DT-PC(WindowsXP-sp2)にVisual C# 2005 Standard EditionとSQLServer2005 とSQLServer Management Studio Expressをインストールして,C#のプログラムでデバッグを実行して、SQLServerに接続しようとしたら「規定の設定がリモート接続を許可しないようになっていることがエラーの原因である可能性があります。」と通知ポップアップウィンドウに表示されるので、http://www.microsoft.com/japan/sql/ssj/tips/01.mspxを参考にして、 「ローカル接続およびリモート接続」と「TCP/IPのみを使用する」を選択し、 一度、サービスを停止した後、「開始」ボタンを押下して、Windowsファイアウォールを無効にして、下記の様にIPアドレスを直接してし、 private void button2_Click(object sender, EventArgs e) { System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection(); //接続文字列を作成する cn.ConnectionString = "Data Source=192.168.30.80:139" + ";Integrated Security=True;database=Database1"; try { cn.Open(); MessageBox.Show("接続に成功しました。", "通知"); cn.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message, "通知"); } } 接続文字列を色々と書き換えてやってみましたが、どうしても先のリモート接続を許可しない・・・が表示され、SQLServer2500に接続できません。 DOSコマンドでnetstat -anを実行すると Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\Documents and Settings\yamada>netstat -an Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 0.0.0.0:1059 0.0.0.0:0 LISTENING TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING TCP 127.0.0.1:1028 0.0.0.0:0 LISTENING TCP 192.168.30.80:139 0.0.0.0:0 LISTENING UDP 0.0.0.0:445 *:* UDP 0.0.0.0:500 *:* UDP 0.0.0.0:1035 *:* UDP 0.0.0.0:1434 *:* UDP 0.0.0.0:4500 *:* UDP 127.0.0.1:123 *:* UDP 127.0.0.1:1900 *:* UDP 192.168.30.80:123 *:* UDP 192.168.30.80:137 *:* UDP 192.168.30.80:138 *:* UDP 192.168.30.80:1900 *:* C:\Documents and Settings\yamada> のように表示されます。 先のソースは、株式会社 秀和システムの「Visuai C# 2005 逆引き大全 500 の極意」のP301のリスト2を書き換えたものです。 Cドライブのフォルダ「C#2005」に置いたACCESSへの接続は成功しますが、 ( C:\C#2005\SampleDB.mdb) Cドライブ直下に置いたSQLSqerverデータベース C:\Database1.mdf への接続は失敗してしまいます。 Windowsファイアウォールは無効に設定せず、「例外」を設定する必要があるのでしょうか。 また、現在、使用している某社のウィルスセキュリティソフトも無効に設定しなければならないのでしょうか。また、管理者権限でないと接続できないのでしょうか。 以上

  • 複合キーの設定エラー

    お世話になります。 SQLserver2005 であるテーブルに複合主キーを設定しようとしているのですが以下エラーが出て設定できません。どこの設定を変更すればいいのかご教示いただけれたらと思います。 マネジメントスタジオで対象テーブルのカラム二つを選択し、主キー設定ボタンを押す。 ↓ メッセージ『インデックスまたは主キーのサイズは900バイトまでです』 ★列プロパティのサイズはそれぞれ510となっておりましたがここが原因でししょうか?(二つを足すと900以上だから??しかし変更の仕方も分かりません。1つのカラムだけですと設定できるのですが。。。) ちなみにこのテーブルにインデックスはまだ設定しておりません。 何卒宜しくお願い致します。

  • SQLファイルでのパラメータ指定の方法

    いつもお世話になっております。 以下のようなスクリプトを含むSQLファイルで「1234」を何回も記述したくないので、スクリプト上部で1回パラメータ指定する書き方をご教授願います。実行はSQLServerのクエリアナライザで行いたいです。 SELECT * FROM 顧客 WHERE 会社CD=1234; SELECT * FROM 商品 WHERE 会社CD=1234; よろしくお願いします。

  • SQLServerの180日体験版をVISTAに

    SQLServerの180日体験版をVISTAに インストールすると 下記のIISのエラーが出ます、警告なので無視カナー と考えてますが、対処する方法はあるのでしょうか? ちなみに、そのVISTAのマシンにはIISは インストールされていて、ブラウザアクセスで ちゃんとページは表示されます。 ・・・・インストール時のエラー・・・・・ - IIS 機能要件 (警告) メッセージ IIS 機能要件 Microsoft インターネット インフォメーション サービス (IIS) がインストールされていないか、または無効になっています。IIS は SQL Server の一部の機能で必要です。IIS がインストールされていない場合、SQL Server の一部の機能をインストールできません。SQL Server のすべての機能をインストールするには、コントロール パネルの [プログラムの追加と削除] から IIS をインストールして、SQL Server セットアップを再実行してください。IIS に依存する機能の一覧については、Books Online の「SQL Server のエディションによってサポートされる機能 (Features Supported by Editions of SQL Server)」を参照してください。

  • SQL Server 2005(Workgroup Edition)の開発をSQLServer2005(Developer Edition)で行なえますか?

    これからSQL Server 2005(Workgroup Edition)を使ったシステムを 作る予定なのですが、Visual Studio 2005(Professional Edition)を使って 開発を行うつもりです。 しかし、SQL Server 2005(Workgroup Edition)のライセンスは持っていないため Visual Studio 2005(Professional Edition)に付属するSQL Server 2005(Developer Edition)を利用して開発を行うことは可能でしょうか? 回答宜しくお願いいたします。

  • exeやbatで2000のバックアップを2005で復旧

    現在のシステム(SQLServer2000)でexeからRestoreDatabaseを行っているのですが、同じくexeでBackupDatabaseを行って作成したバックアップファイルをSQLserver2005で復旧すると(RestoreDatabaseおよびSQL Server Management Studio Expressを使用した手動復元)両方ともエラーが出てしまい復旧できません。 原因としては2000と2005のLDFファイルおよびMDFファイルの場所が違うせいかと思われ、手動で復元する際に詳細設定でLDFファイルおよびMDFファイルの場所を指定し直してやれば問題なく復旧ができるのですが、システムを使用する人がパソコンに詳しい人でないため、SSMSEなどを使った手動操作を案内することが不可能と思われるため、batもしくはexeを配布して対応ができればというところです。 RestoreDatabaseなどを行う際に、対象とするMDFファイルおよびLDFファイルを指定することは可能でしょうか?

  • 【SQL Server】ローカルにDB構築

    SQL ServerでのDB構築について質問させてください。 自分のPCのローカルにSQL ServerのDBを構築したいのですが あれこれと試行錯誤してもうまくいかないので方法を教えていただけませんか。 ちなみに  ・SQL Server 2005  ・Microsoft SQL Server Management Studio はインストールされています。 よろしくお願いいたします。

    • roming
    • 回答数1