SQL Server
- SQLがわかりません。その2
VB2010とSQL Server2008 R2 でWindowsアプリを作っている新米です。 下のような表(DataDridView)で表示したいと考えています。(本当は月曜から金曜までの 5日間ですが、便宜上4日間で表現しました。) 品名ID 月曜 入荷 出荷 火曜 入荷 出荷 水曜 入荷 出荷 木曜 入荷 出荷 aaaaaa 6/12 2000 1500 6/13 1000 1000 6/14 1300 2000 6/15 3300 2000 bbbbbb 6/12 1000 2500 6/13 3000 4500 6/14 4200 3000 6/15 2000 1000 cccccc 6/12 1000 1500 6/13 1000 3400 6/14 1700 2600 6/15 3500 1000 dddddd 6/12 1500 1800 6/13 2200 1000 6/14 3300 1000 6/15 4100 2200 ・ ・ テーブル(table_meisai)はこのように構成されています。 meisai_id hinmei_id date in_suryo out_suryo したがって SELECT hinmei_id,date,in_suryo,out_suryo FROM table_meisai WHERE date BETWEEN 6/12 AND 6/16 とすると、当然のことながら aaaaaa 6/12 2000 1500 aaaaaa 6/13 1000 1000 aaaaaa 6/14 1300 2000 aaaaaa 6/15 3300 2000 aaaaaa 6/16 3200 3500 bbbbbb 6/12 1000 2500 bbbbbb 6/13 3000 4500 ・ ・ と出てきてしまうわけです。 で、これを上記のような「hinmei_id」単位で1行にした「表」にしたいと考えているのですが、 そのSQLがわからないという状況です。 SQLの組立て方法を教えて下さい。 よろしくお願いします。
- 締切済み
- SQL Server
- panasobi
- 回答数4
- SQLServer2008インストール時のエラー
Microsoft SQL Server 2008 R2 RTM - Express with Management Tools (SQLEXPRWT_x86_JPN.exe)を実行すると下記のエラーが出てしまいます。 SQL Server のセットアップで次のエラーが発生しました: 要素 名前空間 'http://www.microsoft.com/sql/slp/Package.xsd' の 'Package' には無効な子要素 名前空間 'http://www.microsoft.com/sql/slp/Package.xsd' の 'Rules' が含まれています。必要とされる要素は 名前空間 'http://www.microsoft.com/sql/slp/Package.xsd' の 'Properties, Datastore, Extensions, MsiPatches, RuleGroups, Sequences' および 名前空間 '##other' のすべての要素 です。 エラー コード 0x84B10001。 どなたか解決方法がわかる方いらっしゃいますか?
- ベストアンサー
- SQL Server
- joyallz
- 回答数1
- SQLを教えて下さい。
VB2010 と SQL Server 2008R2でWindowsアプリを作成しています。 以下に様なDataGridViewを作成したいと考えています。 品名ID 月曜 入荷 出荷 火曜 入荷 出荷 水曜 入荷 出荷 木曜 入荷 出荷 金曜 入荷 出荷 aaaaaa 6/12 2000 1500 6/13 1000 1000 6/14 1300 2000 6/15 3300 2000 6/16 3200 3500 bbbbbb 6/12 1000 2500 6/13 3000 4500 6/14 4200 3000 6/15 2000 1000 6/16 2000 2700 cccccc 6/12 1000 1500 6/13 1000 3400 6/14 1700 2600 6/15 3500 1000 6/16 2500 2200 dddddd 6/12 1500 1800 6/13 2200 1000 6/14 3300 1000 6/15 4100 2200 6/16 1000 1500 ・ ・ テーブルはこのように構成されています。 【table_meisai】 meisai_id hinmei_id date in_suryo out_suryo ですので、一遍にこのDataGridViewに表現するのは無理な感じです。 それで以下のように考えました。 1)「hinmei_id = aaaa」と「date between 6/12 and 6/16」を条件とした検索を行う。 2)1)の検索結果をテンポラリーテーブルに書き込む。 3)1)の検索を「hinmei_id = bbbbb」に変えて行う。 4)3)の結果をテンポラリーテーブルに書き込む。 5)3)と4)をすべての hinmei_id に対して行う。 6)作成されたテンポラリーテーブルに対して検索し、結果をDataGridViewに表示する。 というやり方でできるのではないかと考えています。 ですが、実際にSQLをどのように組み立てたらもいのかさっぱりわかりません。 ご指導下さい。 また、もしかしたら、上記の1)~6)のアプローチ自体が間違っているのかもしれません。 他の方法があったら教えて下さい。 よろしくお願い致します。
- 締切済み
- SQL Server
- panasobi
- 回答数2
- SQLの管理権限のあるユーザーを調べたい
【理想】 既にSQLServerExpress2005以降(以下SQL)が入っているPCに対して、 SQLの管理者権限がないユーザーがインストーラーを実行した際、 ・このユーザーは管理権限がないこと ・管理権限があるユーザーは○○というユーザーなので、○○というユーザーで ログインし直してからインストールして欲しい というメッセージを出したい 【現状】 SQLをデータベースとして開発したソフトウェアがあり、 インストーラーを実行すると、SQLと開発したソフトウェアが自動インストールされるようになっています。(既にSQLがインストールされている場合はSQLはインストールしない) インストーラーは、Inno Setupを利用しています。 ここで問題になっているのが、 既にSQLがインストールされているPCにインストールしてもらった際に、 SQLの管理者ではないユーザーでインストールしようとするとエラーになることです。 ユーザーに上記を伝えて、権限のあるユーザーでやり直してもらって(もしくは一旦SQLをアンインストールして)、再度上記インストーラーを実行してもらう必要があるのですが、権限のあるユーザーが誰か答えられるユーザーがほどんどいません。 今は、インストーラーを実行した際、既にインストールされていれば、 仮のデータベースを作るテストをしてみて、出来ればOK、出来なければ、「インストール出来ないから管理権限のあるユーザーでログインしてほしい」のようなメッセージを出してセットアップを中止するようにしています。 インストーラーを実行した際、管理権限のあるユーザーが誰なのかが分かる方法はないでしょうか。色々試してみたのですが、「管理者権限がない」という応答しか返って来ません。 同様の悩み(対応)は他のソフトでも同様だと思いますが、 どのように解決しているのかを教えて頂ければ助かります。 分かる方ご教授お願い致します。
- ベストアンサー
- SQL Server
- hoshio99
- 回答数2
- MS-SQLプロシージャでファイルを削除したい
お世話になります。 SQL Server 2005のプロシージャにて テーブルの削除→CSVファイルの取り込み→CSVファイルの削除を行いたいと思っております。 ALTER PROCEDURE [dbo].[テーブル削除+インポート+ファイル削除] AS begin DELETE FROM dbo.テーブル BULK INSERT テーブル FROM 'テキストファイル' WITH (DATAFILETYPE='char', FIELDTERMINATOR=',',ROWTERMINATOR='\n') end ここで、テーブル削除とCSVファイルのインポートはできたのですが、ファイルの削除が未だにできません。 このあとテキストファイルをこのプロシージャ内で削除するにはどうすればよいでしょうか。
- ベストアンサー
- SQL Server
- MYCABIN
- 回答数1
- ストアドプロシジャと変数のセットについて
SQL SERVER 2005を利用し、ストアドプロシージャを作成しております。 あるストアドでwk_hizukeというテーブル(下記の構成)から、tokuisakicode tokuisakicode int, denpyouhizuke smalldatetime を変数@tokucdへ送り、別のストアドを呼び出し@hizuke1を戻り値として メインのストアドへ戻し、@hizuke1を上記テーブルのdenpyouhizukeへ格 納したいというのが行ないたいことです。 wk_hizukeというテーブルには複数のレコードが入っており、そのレコード を一件ずつ読みながら、上記の処理を行ないたいと考えております。 select tokuisakicode set @tokucd = tokuisakicode exec sp_hizukesanshutu @tokucd , @hizuke1 output , from wk_hizuke このような構文を記述してみたのですが、エラーとなってしまいました。 根本的に考え違いをしているのかと思い、いろいろ調べてみたのです が、妥当と思われる構文を見出すことができずにおる次第です。 アドバイスいただければ幸いです。宜しくお願い致します。
- ベストアンサー
- SQL Server
- takazou
- 回答数1
- (local)とlocalhostの違い
Sql Serverを構築し、それに接続するODBCを登録しようとするとエラーになってしまいました。 Manegement Studioで接続できるのは確認済みです。 (環境) OS:Windows Server 2003 DB:Sql Server Express 2010 ODBC: システムDSN サーバー:(local) Windows認証 (エラーメッセージ) 接続できませんでした。: SQLState: '01000' SQL Server エラー: 14 [Microsoft][ODBC SQL Server Driver][Shared Memory]ConnectionOpen (Invalid Instance()), 接続できませんでした。: SQLState: '08001' SQL Server エラー: 14 [Microsoft][ODBC SQL Server Driver][Shared Memory]接続が正しくありません。 色々調べてODBCの設定を下記のように変更したところつながりました。 (1)サーバー:localhost (2)クライアントの設定-"ポートを動的に決定する"のチェックをオフ。ポート番号:1433 (2)が無くても設定はできるのですが、無いと最後の接続テストでエラーになってしまいました。 「(local) = localhost」だとずっと思っていたのですが、挙動が異なるので「(local)」はちょっと違う意味合いがあるのでしょうか?
- 締切済み
- SQL Server
- cyanberry
- 回答数1
- 文字数チェック
<環境> Sqlserver2005 フィールドにある特定文字列が何文字存在するか抽出できる方法はありますか? 例えばこんな感じです。 郵便番号フィールドから文字列"-"が何文字存在するか 郵便番号 結果 09099999999 0 090-99999999 1 090-9999-9999 2 090-99-99-999 3
- ベストアンサー
- SQL Server
- noname#208236
- 回答数1
- SQLserverの導入を検討中
これまでは、Access2007のテーブル(accdb)を共有PCに置いて、 クライアント側のAccess(accdb)で帳票を印刷していました。 保守の方法は、変更のあったオブジェクト(クエリ、レポート等)を 差し替え(削除→インポート)していました。 しかし、クライアントの数が増えてきたため、SQLserverの導入と Accessa(ccdb)のADP化を検討しています。 実際に使っていないのでわからないことばかりなので、質問させて頂きます。 Q1.SQLserverはサーバーでなくても共有PCでも問題はないでしょうか? Q2.保守の方法としては、サーバー側のクエリとクライアント側のレポート等を 差し替えるようなこれまでの方法でいいのでしょうか? 他に方法があれば教えてください。 Q3.現在の100個以上のクエリのうち半数以上は構成を変えるつもりですが、この場合 ウィザードでクエリをストアドプロシージャへ移行してから編集した方がよいか、 1つ1つデザインしなおした方がよいでしょうか? Q4.SQLserverの導入についての支援サイトなどあれば教えてください。 他にも聞きたい事がありますが、とりあえず回答いただきたいと思います。 よろしくお願いします。
- 締切済み
- SQL Server
- meron_
- 回答数4
- SQLサーバーのミラーリングについて
SQLサーバーをミラーリングして管理したいと思っています。 OSはWin2008、SQLは2005SP4です 現在、Developerで勉強中です まず、同じPC内でHDDを分けてSQLをインストールする場合 プライマリ用、セカンダリ用、監視用と 別々にライセンスが必要ですか? 次に別々のPCに分けてインストール→ミラーリングする場合 どうなりますか? 接続ユーザーのCALはプライマリへの接続分で よいのでしょうか? よろしくお願いします
- ベストアンサー
- SQL Server
- himajirou_pg
- 回答数1
- SQLでORを略す方法
こんにちは、 (SQL server2005環境) ストアドのwhere文なのですが、 codeの条件でtypeが77,88,99のいずれかを検索させたい場合 下記の文になると思いますが、もう少し簡略することは出来ますでしょうか? WHERE TABLE2.[Code] LIKE COALESCE(@Code, TABLE2.[Code], '') and TABLE2.[TYPE] = '77' or TABLE2.[Code] LIKE COALESCE(@Code, TABLE2.[Code], '') and TABLE2.[TYPE] = '88' or TABLE2.[Code] LIKE COALESCE(@Code, TABLE2.[Code], '') and TABLE2.[TYPE] = '99'
- ベストアンサー
- SQL Server
- lensent
- 回答数1
- 更新ロックとデッドロック
データベースを勉強中の者です。ロックの種類についてどなたかご教示いただけますでしょうか。 ロックの種類は、次の三種類ですよね。 ・共有ロック ・排他ロック ・更新ロック 共有ロックの意味は理解できていると思うのですが、更新ロックがよくわかりません。 更新ロックにすると次のように動作するそうですね。 1.更新を前提にして共有ロックをかける。 2.更新する前に排他ロックに切り替わる。 排他ロックも更新時に使うロックですが、排他ロックと更新ロックの違いというか、使い分けがよくわかりません。 データを更新するためには排他ロックをかけないといけないのはわかりますが、その前に共有ロックをかける意味は? http://f29.aaa.livedoor.jp/~snaka/PukiWiki/PukiWiki.php?SQLServer%2F%A5%ED%A5%C3%A5%AF#na5d5d64 上のサイトを読んで「デッドロックを回避するため」といったんは理解したのですが、上司は「更新ロックとデッドロックは関係ない」と言います。 私の解釈が間違っているのでしょうか。それとも上司?
- ベストアンサー
- SQL Server
- meglin888
- 回答数4
- SQLSERVER 文字列から特定の文字を取得
DBはSQLSERVER2005です。 メールアドレスの入力チェックをしたいと思っています。 みなさんはどのようなチェックを行うのでしょうか? 私は、フィールドに@マークが何個あるか確認しようと考えています。 これを確認できる関数はあるのでしょうか? ご教授お願いします。
- ベストアンサー
- SQL Server
- noname#208236
- 回答数2
- SQLServer 2008へ移行
現在、SQLServer2000を使って社内システムを構築しています。 サーバーのハード保守切れに伴い、 SQLServer2008へ移行しようとしています。 現在の環境は、 OS Windows2000Server DB SQLSERVER2000 アプリ Windows2000Server VB 6.0で作成 (Ctrix社のMetaFrame) となっています。 DBの部分のみ、変更しようとしています。 ハード 64bit Windows2008Server ソフト 64bit SQLServer2008R2 移行に関して、 (1)2000で使っていたDBファイルをアタッチ、デタッチで丸ごと移行できるのか? (2)アプリの接続部分に変更しなくてはならないのか? (アプリのコンピュータ名は、同じにします。) 詳しい方、ご教授願います。
- 締切済み
- SQL Server
- nakaandtosi
- 回答数2
- SQL Serverで更新されない問題
皆様、いつもお世話になっております。 以下の環境で、サーバのDBに対してクライアントより更新処理を行っております。 更新時にトランザクション制御(begin Tran 及び、Commit Tran)を行っておりますが、更新されません。 (更新時のエラーも発生しておりません。) トランザクション制御を外して更新すると、正常に更新されます。 なお、クライアントのMDACを最新にしてみたのですが、現象は変わりませんでした。 <サーバ環境> OS :Windows 2008 Server R2 DBMS:SQL SERVER 2008 R2 <クライアント環境> OS :Windows XP アプリ : VB6 SP5で開発したADO接続のプログラム 追記: サーバは最近新しいものに入れ替えたのですが、旧サーバでは、上記のような現象は 発生しておりません。 <旧サーバ環境> OS :Windows 2003 Sever SP無し DBMS:Sql Server 2000 SP不明 些細な情報でもかまいませんので、情報のご提供をお願いします。
- 締切済み
- SQL Server
- siotanpapa
- 回答数1
- トレース定義の保存について
SQL Server Profilerでのトレースを、exec sp_trace_createを用いてトレース定義をし、 トレースログを取得することを考えているのですが、 sp_trace_createで作成したトレース定義が、 SQLSERVERのインスタンスを再起動すると削除されてしまいます。 トレース定義というのは、このように再起動すると削除されてしまうものなのでしょうか。 希望としては、再起動をしても削除されることなく、インスタンス起動停止のたびに、 トレースも同様に、以下のコマンドで停止・開始を行っていきたいと考えています。 開始:exec sp_trace_status @TRACEID, 1 停止:exec sp_trace_status @TRACEID, 0 ※仕様上、削除されてしまうものかどうかをいくつかのサイトを検索しましたが、 見つからず、ここで質問させていただいております。 また、@TRACEID=1に(インストール時から登録されている既定の?)トレース定義は 再起動しても削除されないため、トレース定義を永続化させることができるのでは、とも思っています。 何卒よろしくお願いいたします。 【環境】 Windows Server 2008 R2 x64 Standard Edition SQL Server 2008 SP2 Enterprise Edition (x64)
- ベストアンサー
- SQL Server
- yupug
- 回答数2
- SQL 繰り返し処理をSQLでかく方法
質問させてください。 FOR文を使うことなしに、繰り返し処理をいくつかのSELECT文にわけて処理をするにはどのようにかけば良いのでしょうか。 標準SQLです。
- 締切済み
- SQL Server
- somehow123
- 回答数2
- SQL Server テーブル設計で悩んでいます。
SQL Server 2008 R2 Visual Studio 2008 テーブルの設計で悩んでいます。 テーブルAのようなデータがあり、実際には、場所のNo.の数は500点くらいあります。 このデータをSQL to LINQでデータの追加、参照をしたいと思っています。 テーブルA,B、どちらの形式で設計する方がよいのでしょうか。 テーブルAの場合は、見た目がそのままで分かりやすいのですが、データ追加時(INSERT)に多数のデータを 追加する方法が分かりません。 テーブルBの場合は、テーブルAの形式で取得する場合、どうすればよいのか分かりません。 ここから先に進めず困っております。よろしくお願いします。 テーブルA 日付 No.1 No.2 No.3 No.4 No.5 2011/1/1 0 68 37 41 38 2011/1/2 3 60 3 69 46 2011/1/3 22 89 63 14 77 2011/1/4 75 8 55 46 41 2011/1/5 63 92 1 26 90 2011/1/6 61 23 77 42 93 2011/1/7 54 52 36 44 41 2011/1/8 72 98 30 66 48 2011/1/9 20 3 89 15 59 テーブルB 日付 場所 線量 2011/1/1 No.1 0 2011/1/1 No.2 68 2011/1/1 No.3 37 2011/1/1 No.4 41 2011/1/1 No.5 38 2011/1/2 No.1 3 2011/1/2 No.2 60 2011/1/2 No.3 3 2011/1/2 No.4 69 2011/1/2 No.5 46
- 締切済み
- SQL Server
- jiioi
- 回答数2
- 正規化されていないテーブルの分割について
正規化されてない下記のようなテーブルがあります。 テープル1(主キー:得意先、商品コード) 得意先 商品コード A 1 A 2 B 5 B 6 B 7 C 1 C 2 これを以下のようにテーブル2つに分けたいです。 テーブル2(主キー:得意先) 得意先 パターン A x B y C x テーブル3(主キー:パターン、商品コード) パターン 商品コード x 1 x 2 y 5 y 6 y 7 このとき、テーブル1のデーターをもとに テーブル2やテーブル3のレコードを生成したいのですが、 テーブル3を抽出するSQL文がどうしても思いつきません。 (やりたいのは、あらかじめ登録したパターンを得意先ごとに選択するという形にしたいです。) 簡単にできるような気もするのですが... パターンについては、ランダムな文字列で構わないです。 SQL文等アドバイスの程、よろしくお願い致します。
- 締切済み
- SQL Server
- kawaakira
- 回答数4
- SqlServerとC#の連携問題 タイムアウト
C#+SqlServerでC/Sアプリを作りました。 しかし、現在下記の問題があります。 ご存知の方いらっしゃいましたら、教えてください。 クライアント側はデータをサーバー側に送信します。 サーバー側はデータを受信しながらSqlServerに保存します。 軽量のデータでやるなら、問題は出ません。 しかし、8GBのデータでやると、その途中、いつも下記のエラーが出ます。 Class:11 Index #0 Message: タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。 LineNumber: 0 Source: .Net SqlClient Data Provider Procedure: System.Data.SqlClient.SqlException: タイムアウトに達しました。操作が完了する前にタイムアウト期間が過ぎたか、またはサーバーが応答していません。 場所 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) 場所 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) 場所 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) 場所 System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) 場所 System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket() 場所 System.Data.SqlClient.TdsParserStateObject.ReadBuffer() 場所 System.Data.SqlClient.TdsParserStateObject.ReadByte() 場所 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) 場所 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) 場所 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) 場所 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) 場所 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) 場所 System.Data.SqlClient.SqlCommand.ExecuteNonQuery() 場所 System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) 場所 System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) 場所 System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) 場所 System.Data.Linq.ChangeDirector.StandardChangeDirector.DynamicInsert(TrackedObject item) 場所 System.Data.Linq.ChangeDirector.StandardChangeDirector.Insert(TrackedObject item) 場所 System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) 場所 System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) 場所 System.Data.Linq.DataContext.SubmitChanges() その他: SqlServer2008 R2 C# .Net3.5 WindowsServer2008 R2
- ベストアンサー
- SQL Server
- get_star
- 回答数1