SQL Server

全2972件中81~100件表示
  • SQLで件数分SELECT結果を取得するには

    SQLSERVERのSQLで以下の【期待する結果】を取得する方法はありますか? SELECT NAME,COUNT FROM CLASSROOM 【結果】 AAA,2 BBB,1 CCC,3 【期待する結果】 AAA AAA BBB CCC CCC CCC よろしくお願いします。

  • SQLを教えてください。

    以下に5つのテーブルがあるとします。 (1)全体テーブル  ・登録順番号(Key)  ・登録名 (2)商品テーブル  ・項目コード(Key)  ・品名コード(Key)  ・商品登録順番号(Key)  ・商品サイズ(Key)  ・品名 (3)商品単価テーブル  ・項目コード(Key)  ・品名コード(Key)  ・商品登録順番号(Key)  ・商品サイズ(Key)  ・登録順番号(Key)  ・商品単価 (4)新_商品単価テーブル  ・項目コード(Key)  ・品名コード(Key(Key))  ・商品登録順番号  ・商品サイズ(Key)  ・登録順番号(Key)  ・新_商品単価 (5)詳細テーブル  ・登録順番号(Key)  ・品名コード(Key)  ・原価項目コード(Key)  ・商品数量A  ・商品数量B 上記のテーブルから、以下の条件に合致する「(1)の登録名」「(2)の品名」「(4)の新_商品単価×(5)の商品数量※」を取得したい。 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 【条件1】全てAND条件 新_商品単価テーブルの項目コードが100  新_商品単価テーブルの品名コードが50 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※<0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A 上記で抽出出来るレコードに加えて、以下 【条件2】全てAND条件 新_商品単価テーブルの項目コードが200~300あるいは400~500 新_商品単価テーブルの新_商品単価×詳細テーブルの商品数量※=0 商品単価テーブルの商品単価×詳細テーブルの商品数量※>0 ※商品数量Bに値があれば商品数量Bを、値がなければ商品数量A どのようなSQLで抽出できますでしょうか?? DBはAccessです。

  • 複数のテーブルをMAX関数を使ってから結合したい

    いつもお世話になります。 ツールを作ることになり四苦八苦しているのですが、 各支店での商品毎の最新情報を表示する一覧表を作成したいと考えております。 商品マスタから外部結合にて作成しているのですが、表示項目に日付のみを表示 するのは日付の最大値ので表示できるのですが、項目が増えると表示できずに 困っております。 2つのテーブルの結合では下記のやり方でできたのですが、3つ以上の結合では どのようにすれば良いのでしょうか? http://okwave.jp/qa/q3297506.html 環境はC#及び データベースはAccess MDBです。 よろしくお願いいたします。 商品マスター 商品品番 商品名 A 商品A B 商品B C 商品C 支店Aテーブル 日付 商品品番 売上 2016/5/1 A 100 2016/5/2 B 120 2016/5/3 C 140 支店Bテーブル 日付 商品品番 売上 2016/6/1 A 100 2016/6/2 A 120 2016/6/3 C 120 支店Cテーブル 日付 商品品番 売上 2016/7/1 B 100 2016/7/2 B 120 2016/7/3 C 100 実現したい表示 商品品番 商品名 支店A販売日 支店A売上 支店B販売日 支店B売上 支店C販売日 支店C売上 A 商品A 2016/5/1 100 2016/6/2 120 null null B 商品B 2016/5/2 120 null null 2016/7/2 120 C 商品C 2016/5/3 140 2016/6/3 120 2016/7/3 100

  • ACCESS:重複の削除(一意フィールドなし)

    下のようなSQLで重複したレコードを削除することができることがわかりました。 テーブル名:TEST DELETE * FROM TEST AS T1 WHERE ID <> (Select Min(ID) From TEST As T2 WHERE T2.受付日 = T1.受付日 And T2.シリアルNO = T1.シリアルNO); しかしIDのように一意のフィールドがないテーブルで重複を消し一意にする方法はありますか。 Distinctを応用するとできるのですが、削除クエリで一発する方法はありませんか。 お願いします。

  • SQL Server2014のダウンロード

    SQL Server2014 Expressのダウンロードを考えています。 32ビット版なんですが、公式の どれをダウンロードすればいいのでしょう?

  • WHERE句のSUBSTRINGを置き変えたい

    sqlserver 2008環境です。 WHERE SUBSTRING(TestCD, 9, 4) <> '0000' 上記のように、20桁の文字列コードをSUBSTRINGしている箇所があります。 インデックスが効かないので、LIKEか何かに置き変えられないかと考えて いるのですが、うまい方法が思い浮かびません。 良い書き方があれば教えていただけないでしょうか。

  • 不一致データの削除

    顧客テーブルと連絡テーブルを"番号"、"名前"、"地域"、"性別"で比較し、 顧客テーブルに存在しないデータを、連絡テーブルから削除するSQL文の 書き方を教えてください。   <顧客テーブル> 番号、名前、地域、性別、登録日 01、足立、東京、男性、2016/04/24 02、加藤、大分、女性、2012/03/01 04、田中、香川、女性、2003/07/21   <連絡テーブル> 番号、名前、地域、性別、生年月日 01、足立、東京、男性、1998/05/21 01、足立、群馬、男性、1974/03/06 存在しない 01、足立、東京、女性、1961/12/30 存在しない 02、加藤、大阪、女性、1965/06/01 存在しない 02、加藤、大分、女性、1981/02/03 03、佐田、香川、男性、1972/10/24 存在しない   --- 実行結果 ------------------------------------   <連絡テーブル> 番号、名前、地域、性別、生年月日 01、足立、東京、男性、1998/05/21 02、加藤、大分、女性、1981/02/03  

  • sql server whereについて

    sql server express2012 のselect文で select * from 商品マスタ where 商品コード in (1,2,3,1)とした場合、商品マスタには商品コード=1のデータは1件しかないけど、商品コード=1のデータ(同一データ)を2行表示する方法はありませんか? 宜しくお願いします

  • sqlserverを外付けHDDにバックアップ

    USBで接続した外付けHDDを Eドライブ として認識させ共有に設定した場合、Sqlserverの BACKUP DATABASE で直接バックアップできますか? 【環境】 win7 sqlserver2008R2 ネットワーク越しのバックアップはNGと認識はあるのですが、USB接続の場合は可能かどうか教えてください。 BACKUP DATABASE [TESTDB] TO DISK = N'E:\testdb.bak' WITH NOFORMAT, NOINIT, NAME = N'バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10

  • sql serverロックしてしまう

    Aceess2010+sql server2012 expressでタイムカード(打刻)を20か所の営業所で利用しています。朝、夕方の打刻が重なる時にロック(クエリーでタイムアウト)が時々発生します。 ※画面から社員コードを入力して出勤などのボタンを押そうとするときに、社員マスタを読み込むときにクエリーでタイムアウトが発生します (1)社員1が退勤などを押して、社員マスタに更新する Set cn = CurrentProject.Connection cn.BeginTrans sql = "UPDATE TM_社員マスタ" sql = sql + " SET" sql = sql + " 打刻ボタン=9" sql = sql + " WHERE 社員コード='" & Me.社員コード & "'" cn.Execute sql cn.CommitTrans cn.Close Set cn = Nothing (2)社員2が退勤を押す前に自分の社員コードを入力(ここでクエリータイムアウトになる) sql = "SELECT * FROM TM_社員マスタ" sql = sql + " WHERE 社員コード='" & Me.社員コード & "'" rs.Open sql, cn If Not (rs.EOF And rs.BOF) Then Me.社員名 = rs!社員名 Me.雇用区分 = rs!雇用区分 (1)(2)の社員は別な社員で社員コードは違います ロックを発生させないための修正としては、(1)のトランザクショをやめて、(2)のSELECTでNOLOCKをつけて参照すれば良いのでしょうか? ちなみに、(1)でトランザクションをはずしてもUPDATE中は社員マスタ全体にロックがかかるのですか?それともWHEREで指定した社員コードのレコードだけロックがかかるですか? あまり、SQL SERVERが詳しくないのですが、宜しくお願いします

  • SQLServerでビューを使用したデータ更新

    SQLServer2012でのビューを使用したデータ変更(追加・変更・削除)は どこまで可能でしょうか? 1.ビューのデータ変更を行う場合複数テーブルのデータを   変更することは可能でしょうか? 2.上記の変更の際の条件や制限事項はありますでしょうか? 3.上記を回避する方法などありましたらご教授ください。 未熟者で的を得ていない質問となっているかと思いますが、 ご教授いただければ幸甚です。

  • SQLServerでのデータベース設計について

    あるシステムのデータベース設計をしております。 あまり知識、経験が無い為ご知恵をお借り出来たらと思います。 システムの概要としては、 「600件程度のデータを1時間毎にデータベースに取り込む。これを24時間365日続ける。さらに20箇所分同時に処理を行う。」 というものなります。 ざっと試算すると、1年だと ((600件 * 24時間) * 365日) * 20箇所 = 105,120,000件のデータを持つことになります。 これを10年間で考えると、105,120,0000件となります。 今のところ、シンプルに600件をそのまま取り込もうとしておりますが、 データ量が膨大になってしまう為、ディスク容量やインデックス等貼ったとしてもパフォーマンスが落ちないか等不安になってしまいます。 MSDNの情報でデータベースの容量を見積もったのですが、105,120,0000件だと1TB程必要となるようでした。 SQLSeverでこの位の件数、容量は一般的なのでしょうか? もしくは600件をそのままでは無く、1データとして取込み、 データを表示する際にプログラムで分割して処理する等の形にするのが良いのでしょうか? ちなみにWindows 2008 R2サーバーでSQLServer 2008 R2 Webエディションの環境となります。 宜しくお願いします。

  • MS AccessからSQL Serverに移行

    現在Accessを使ってデータの参照と、フォームでの入出力を行っています。海外拠点とVPNでつながっていて、今回そちらからも接続したいので無料版SQL Serverにデータを移行し、Accessはフロントエンドとしてフォームの利用のために使いたいのです。 データベース自体は画像やらPDFが置いてあるらしく500MBほどありますが、おそらくテーブルはあっても片手で数えられる程度、データは1000件ほどだと思います。 利用方法は部品番号を入力したら該当するデータシートがフォームに出力されるだけの単純で原始的なものです。多分エクセル+フォームでも再現可能です。発注時にそれを参照しつつ数量その他を決めて発注後、その発注データをテーブルに保存しているようです。 Accessはネットワーク越しの利用には向かないと聞きますので、SQL Serverにデータだけ移行させたいのですが、簡単にできますでしょうか? 一番簡単なのはAccessのデータベースがあるPCにリモート接続することですが、3人が同時利用できないのでこのような方法を検討しています(同時使用は最大でも3人たいてい2人まで、全体の利用者は7人ほど)。 Accessのアップサイジングという機能を使ってテーブルのデータを流し込み、ODBCでAccessからサーバ上のDBに接続するだけで動作するならそちらに移行したいです。 よろしくお願いいたします。

  • データベースのバックアップリストアの仕組みについて

    【環境】 SQL Server 2008 R2 Express Edition (x64) データベースの勉強をしています。 データベースの場合、データベースを管理しているのはOSではなく、DBMSのため、ユーザーデータベースを戻しただけでは、戻らないとに認識しています。 EXCELのファイルのバックアップ/リストアは、単にEXCELファイルをバックアップしてリストアすればいいのは分かりますが、データベースの場合のバックアップ/リストアについての仕組みについてよく理解できていません。 理解する上で、いろんなパターンのバックアップ/リストアを試そうと思っており、以下の件につきましてご教示を頂けますようお願い致します。 (1) 障害が発生した場合を想定してのデータベースのバックアップですが、ユーザーデータベースだけではなく、masterデータベースのバックアップも必要という認識であっておりますでしょうか。 masterデータベースにはユーザーデータベースの場所、ユーザー情報、ユーザーのロール情報が含まれているため、バックアップしたユーザーデータベースだけリストアしても復旧できないということでよいでしょうか。 masterデータベースが損傷していなければ、バックアップしたユーザーデータベースだけリストアすれば、復旧できる。 (2) ユーザーデータベースが10個あり、そのうち特定なユーザーデータベース1個のバックアップおよびリストアテストをする手順については、下記でよろしいでしょうか。 テスト後は、次のテストパターンを学習するため、元の状態に戻したいと考えています。 <手順> 1.システムデータベース、必要なユーザーデータベース1個をのバックアップを行う。 2.ユーザーデータベース10個をデタッチする。 3.システムデータベースをデタッチする。 4.デタッチしたシステムおよびユーザーデータベースを別の場所に退避する。 5.システムデータベース、特定のユーザーデータベース1個をリストアする。 6.リストアしたユーザーデータベースが問題ないことを確認する。 7.リストアしたユーザーデータベース1個をデタッチする。 8.リストアしたシステムデータベースをデタッチする。 9.退避したシステムデータベース、ユーザーデータベースを元の場所に戻す。 10.システムデータベースをアタッチする。 11.ユーザーデータベース10個をアタッチする。

    • ベストアンサー
    • noname#242248
    • SQL Server
    • 回答数6
  • SQLServer Access(adp)から更新

    SQLServer初心者です。 Access(adp)から、ストアドプロシージャを使ってSQLServer(2005)の テーブルを更新させる処理があります。(約9万行のCSVデータを読み込み) 内容としては1行ずつLoopさせて以下の処理を行っている感じです。 1、AテーブルにCSVファイルから取得したデータをINSERT 2、Aテーブルの同一キーがマッチしたBテーブルの2項目に対して、   CSVファイルの値を更新(Update)  テスト環境では問題なく更新できていましたが、本番環境だと処理が異様に遅くなりました。 (1時間かかって12000件ほどしか更新されません) テーブル、インデックス、ストアドの中身も確認しましたが違いが見つけられず。 「SET ARITHABORT ON」の設定も入れてみましたがダメでした。 2のUpdate処理を外すと運用に耐えるくらいの速度になったので、Update部分が 問題なのだとは思うのですが・・。 UPDATE Bテーブル SET koumoku1=@csvkoumoku1,koumoku2=@csvkoumoku2 WHERE KEY=@csvkey ←csvkeyはAテーブルのキーになります サーバ環境と本番環境はコピーしているためまったく同じだとは思うのですが どこかほかに確認するところなどありますでしょうか。 よろしくお願いいたします。

  • SQL Serverの大量データ取得

    VB.NET言語を用いて、SQL Server から 10万件以上のデータを全件取得し、リストに格納する処理を実装しています。しかし、OutOfMemoryエラーが発生してしまいます。おそらくメモリ不足によるものだと考えています。 10万件以上のデータを高速に取得する最良の方法があれば教えてください。

  • SQLのパフォーマンスボトルネック特定

    サーバーの保守期間切れに伴い、サーバー本体とSQLのバージョンをあわせて今回入れ替えるのですが、もともとMicrosft SQL Server 2008R2 のパフォーマンスが良くなく、まずは入れ替え前の状態で何がボトルネックなのかを調査したく思います。どうすればよいでしょうか。 新システムではCPUもコアが増え、メモリーもより多く実装し、HDDも一部SSD化するので高速になることを期待しているのですが、そもそも入れ替え前のボトルネックを知っておかないとやみくもに増強してもしかたがないので。 ネットにはSQLのパフォーマンスボトルネック特定の情報があふれていますが、専門要員もいないので、詳細すぎる情報は理解できず、できれば簡単に特定したく思います。

  • SQLSrever 2008 R2のエラー

    PC環境が以下ように複数あります A) Win7 32bit 英語版 B) Win7 32bit 英語版 C) Win7 32bit 日本語版 D) Win7 64bit 日本語版 各言語用のインストーラでSQLインストール済み 英語・日本語ではそれぞれ同じインストールファイル使ってセットアップ アカウント名・パスワードは多少異なりますが管理者権限ユーザで作業 Aで作成したデータベースデータをそのまま他の環境(PC)に作成するために 必要な mdf と ldfファイルをコピーして SQL Server Management Studioでアタッチしようとしたところ Dの環境下での作業時だけエラーが出てしまいました 検索したところ状況は以下と同じなんですが対処法として書かれている 管理者で実行してもエラーが改善されません http://hotate1973.seesaa.net/article/295051201.html なおかつ不思議なことに mdf と ldfファイルを C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA にコピーしてアタッチすると正常に処理できています (要は任意のフォルダにおいてアタッチできない) 任意のフォルダへのアクセスは普通にできています    どちらかと言えば    C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA    へのエクスプローラでのアクセスでアクセス権を求められたので許可しました    (これは他のPCでもすべて同じ) Dに限って何か特殊なことを行ったとか言ったことはないはずなのですが (違うところとすればビット数だけだと思うのですが) 何故こういった現象になるのかわからない状態です 特定の所でもアタッチできるならそこ使えばいいという話はあるのですが データの更新などの都合もあり同名データベースを別フォルダにおいて デタッチ・アタッチで切り替えたいのです(B/Cでは特に問題なくできている) 原因・対処方法など思い当たる方いるでしょうか?

  • データの更新判断

    この方面に詳しくないので用語などに間違いがあるかもしれません SQL Server2008 RC2 を使っています データベースに複数のデータ列が存在してデータ件数(レコード数)は不定です プログラムは VC2010にて自作  ODBC経由でアクセス データベースの構造はある程度自分で加工可能 データベースへの件数の削除・追加・更新は自作プrグラム以外からも行われる 自作プログラム以外には以外には極力影響与えたくない 上記データベースの件数の変化については現状 SELECT COUNT (*) FROM [データベース名]  のポーリングで件数の増減の検出 新規追加の判断に関してはデータ列の中に データ登録日を保存することで それをソートして処理していますが 何処かのデータの一部が更新されたというのを検出することは可能なのでしょうか?   ※ 判断したいのはデータの追加と更新だけで削除されたデータが     どういったものであったかを判断する必要はありません 更新データも全データを都度ポーリングチェックすれば判断はできるでしょうが データ件数によってレスポンス的に使えない代物になると考えています データベースの設定やプログラム的なもので対処できるものなのか 無理なのか(個人的に無理だと考えてる) 可能であればどういった方法で実現できるのか わかる方がいたら教えていただけないでしょうか (無理なら無理で構わない  ->  詳しい方の判断を求めたい) 内容に不足があれば補足させていただきます

  • SQLのUPDATEで文字列の1桁目を置換えたい。

    更新SQLを以下のように作ってみましたが、DBのレコードの文字列の1ケタ目を更新できない。 例) UPDATE テーブル名 SET  STUFF(A-CH,1,1,'1') WHERE B-CH = '1' AND C-CH <> B-CH AND A-CH > ’099999’ ※WHERE以降の条件に該当するものに対し、Aテーブルの1ケタ目を更新したいのですが うまくいきません。 お願いします。