SQL Server
- 【SQL】指定期間の合計、MAX値取得
レンタルビデオ店や図書館で指定日範囲内の、貸出本数の合計の最大値を取得したいです。 ※○月は○日が貸出ている本数が一番多かった… テーブル上では8桁の日付と貸出本数を持っています。 例えば、下記データがテーブルに登録されている場合に、 where文で'20130101'~'20130131'と期間を指定すると'13'が抽出されます。 1月4日が13本貸出中で、指定期間内で一番貸出本数が多いからです。 貸出日/返却日/本数 ------------------------------------------ 20130101/20130104/4 20130102/20130105/6 20130104/20130108/3 20130106/20130109/8 20130110/20130114/5 ------------------------------------------ 調べてみたのですが、指定日の最大値取得は見つかりましたが、指定期間での抽出方法がわかりませんでした。 使用環境はSQLServerです。 ご協力、お願致します。
- 締切済み
- SQL Server
- jiginsan
- 回答数3
- ODBCタイムアウトエラー
WindowsXP環境でACCESS2003を使用して、ODBCリンクでSQL SERVER2005に接続し、データーを取得後ローカルテーブルにデーターを置く処理を作って運用していたのですが、 Windows7でACCESS2003に移行し、システム内容は変更していないのですが Windows7になってリンクテーブルを開くと「ODBC タイムアウトエラー」が発生します。 WindowsXPのときはタイムアウトが出ずに1分くらいで結果が返ってきます。 多分、SQL SERVER ドライバーの影響と思うのですが分かりません。 どなたか教えてください。 Windows7 SQLSERVER(ODBC)ドライバー バージョン:6.01.7601.17514 windowsXP ドライバー バージョン:200.85.1132.00
- 締切済み
- SQL Server
- hand1130
- 回答数1
- 【SQL】グループ化した際の最頻値の表示
はじめまして。 現在、私は仕事で統計を表示するためのレポートを作成中ですが、 データ取得SQLのよいアイデアが浮かびません。 わかる方がいらっしゃいましたら、お知恵を貸してください。 booking_id 販売支店 出身国 値段 車種 ---------------------------------------------- 01 東日本 ブラジル 100,000 A 02 東日本 ブラジル 200,000 A 03 東日本 ブラジル 300,000 B 04 東日本 ブラジル 400,000 C 05 東日本 日本 500,000 A 06 東日本 日本 600,000 B 07 西日本 ロシア 700,000 B 08 西日本 ロシア 800,000 B 09 西日本 ロシア 900,000 B 10 西日本 韓国 100,000 A 11 西日本 韓国 200,000 B 12 西日本 韓国 300,000 C 13 西日本 韓国 400,000 C 上記のようなテーブルがある場合、販売支店と出身国でグループ化して、 それぞれの値段の合計値を出します。 その際、車種はもっとも頻出した値を表示したいのですが、 どのようにしたら実現できますでしょうか。 (最頻値が2つ以上の場合は、その中のどれかを表示する。) 期待結果は以下のようになります。 販売支店 出身国 値段 車種 --------------------------------------- 東日本 ブラジル 1000,000 A 東日本 日本 1100,000 A 西日本 ロシア 2400,000 B 西日本 韓国 1000,000 C SQL Server は、2008R2を使用しております。 以上、よろしくお願いいたします。
- ベストアンサー
- SQL Server
- losmy
- 回答数1
- SQLで一行更新したい
こんにちは。 今、SQLの勉強をしている初心者です。 データの1~30までの件数に、NUMBER1~30を入れたいのですがどうすればいいでしょうか? 例えば、 X Y NUMBER GHU KJI 0 HUG EER 0 HUU OPI 0 上記にあるNUMBERを下記のようにしたいです。 X Y NUMBER GHU KJI 1 HUG EER 2 HUU OPI 3 UPDATE文だと一列全部変わってしまいます。 どのような文を作ればいいのかよく分からないでいます。 よろしくお願いします。
- ベストアンサー
- SQL Server
- RAIKOUKUMA
- 回答数7
- 【SQL】複数行から最大値の取得
以下のSQLを実行すると ENDDATE PNO 2013/02/01 00000001 2013/02/01 00000002 2013/02/03 00000001 2013/02/01 00000003 2013/02/05 00000002 2013/02/01 00000001 2013/02/02 00000002 の様になります。 これを ENDDATE PNO 2013/02/03 00000001 2013/02/01 00000003 2013/02/05 00000002 の様にENDDATEの最大値のみを残しPNOが重複しないものを抽出したいです。 以下のSQLをどの様に修正すれば可能でしょうか? ==SQL================================================== SELECT CO1.ENDDATE,AD1.PNO FROM COMMON CO1,ADMADMISSION AD1 WHERE CO1.DETAILOF IN ('10') AND AD1.CURRENTWARD=:CURRENTWARD AND CO1.STARTDATE BETWEEN TO_CHAR(TO_DATE(:CURRENTDATE)-:ENDLINE,'YYYY/MM/DD') AND TO_CHAR(TO_DATE(:CURRENTDATE)+:DEADLINE,'YYYY/MM/DD') UNION SELECT CO2.ENDDATE,CO2.PNO FROM COMMON CO2,ADMADMISSION AD2 WHERE CO2.DETAILOF IN ('10') AND AD2.CURRENTWARD=:CURRENTWARD AND CO2.ENDDATE BETWEEN TO_CHAR(TO_DATE(:CURRENTDATE)-:ENDLINE,'YYYY/MM/DD') AND TO_CHAR(TO_DATE(:CURRENTDATE)+:DEADLINE,'YYYY/MM/DD') UNION SELECT CO3.ENDDATE,CO3.PNO FROM COMMON CO3,ADMADMISSION AD3 WHERE CO3.DETAILOF IN ('10') AND AD3.CURRENTWARD=:CURRENTWARD AND :CURRENTDATE BETWEEN CO3.STARTDATE AND CO3.ENDDATE
- 締切済み
- SQL Server
- red0176
- 回答数1
- iis7でのデータベース削除方法(xoops)
iis7でxoopsを再インストールしたいと考えています。 インストール中に【XOOPS2 テーブルがデータベースに既に存在します】と出てきたので下記の方法で 削除しました。 でも、また同じようにデータベースが存在するメッセージが出てきます。 windows server2008 R2はどこからテーブルを削除すればいいでしょうか。 おわかりの方がいらっしゃいましたら宜しくお願いします。 1.IIS マネージャを開き、管理するレベルに移動します。 IIS マネージャを開く方法については、「IIS マネージャーを開く (IIS 7)」を参照してください。 UI の特定の場所への移動については、「IIS マネージャーでのナビゲーション (IIS 7)」を参照してください。 2.[機能ビュー] で、[接続文字列] をダブルクリックします。 3.[接続文字列] ページで、 削除する接続文字列を選択します。 4.[操作] ウィンドウで、[削除] をクリックし、[はい] をクリックします。
- 締切済み
- SQL Server
- 土岐 葵
- 回答数1
- countとdistinctを使ったSQL文ついて
countとdistinctを使ったSQL文について VB2005+SQLSERVER2005で開発を行っています。 distinctとcountを組み合わせて抽出するようなSQL文になるのかなと思うのですが うまくいきません カラム maker:メーカ名が登録されている テーブル shohin カラムmakerの実際のデータ例 富士通 NEC 東芝 パナソニック NEC NEC パナソニック 抽出した結果の例 富士通 1 NEC 3 東芝 1 パナソニック 2 メーカー名とその件数が出力結果となります 以上ですがわかる方いらっしゃいましたらご回答お願いいたします。
- 締切済み
- SQL Server
- tkwavek
- 回答数2
- T-SQL パラメータがNULLの場合条件含めず
お世話になります。 SQL Server での T-SQLのWhere句のパラメータがNullであった場合に これをWhere句から除外したいのですが・・・ 今まで、こういう場合には、SQL文をプログラム上で作成してそのSQL文を ソースにしてきたのですが、動作速度や汎用性を考えてストアドプロシジャーを使用するのが今後の為と思いこちらで質問させていただきました。 例えば・・・条件のところから WHERE IF @パラメータ1 Is Not Null (dbo.TEST.A =< @パラメータ1) AND IF @パラメータ2 Is Not Null (dbo.TEST.B =< @パラメータ2) AND このように記述してみたのですが、WHEREが記述された後ではダメなようで・・・次に WHERE CASE WHEN @パラメータ1Is Not Null THEN (dbo.TEST.A = @パラメータ1) AND WHEN @パラメータ2Is Not Null THEN (dbo.TEST.B = @パラメータ2) AND END 上記にように記述してもやはりエラーが。 WHERE句の後にパラメータを評価し、WHERE句に含めるか、 含めないか記述するにはどうすればいいでしょうか? 初歩的な事かもしれませんが、何卒よろしくお願いいたします。
- ベストアンサー
- SQL Server
- kyokotan12
- 回答数3
- Sqlトランザクションの必要性
SQLServer2005Expressを使用しています。 そこでトランザクションについて質問させて頂きます。 複数のスレッドや複数の端末から1つのテーブルの1つのレコードを 更新する場合に、トランザクションを掛ける必要性はあるでしょうか。 複数のセットとなるテーブルを更新する場合はトランザクションで 整合性を保ちつつ排他を行うので必須と思いますが、 1つのテーブルの1つのレコードの場合も必須でしょうか。 また、必須ではなくてもトランザクションを掛けておく有効な理由は あるでしょうか。 ちなみにトランザクション中は、他のコネクションから参照も不可に なるようにしております。 よろしく願いいたします。
- 締切済み
- SQL Server
- kkmgk336
- 回答数1
- sqlserver.exeって何なのですか
プロセスを調べたらsqlserver.exeというのが動いていました。てっきりsqlserver関連だと思って使わないから停止しようと思ったら、調べてみると動かしておいた方がいいというサイトがありました。 SQLServerはデータベースですがsqlserver.exeはあまり関与してないのでしょうか。なおSQLServerは使う予定は今のところありません。ご指導よろしくお願いします。
- 締切済み
- SQL Server
- noname#178685
- 回答数1
- SQLServerのコンピュータ名変更について
教えてください。SQLSever初心者です。SQLサーバがインストールされているサーバのコンピュータ名を変更します。変更によって何か影響することがありますでしょうか?
- ベストアンサー
- SQL Server
- ymoshimoshi
- 回答数1
- アクセスを2名で共有する場合もに移行した方がよい?
2名で共有する場合もSQLServerに移行した方がよいでしょうか? ひとつのMDBテーブルをテーブルとその他に分けて使用しています。 テーブル部分を共有フォルダに入れて使っていますが 現在は一人が使ってる時はもう一人は使わないようにしています。 今のタイミングならSQLServerに移行できる時間があるのですが2名でも移行した方が良いですか? アクセスは複数でファイルの共有をすると壊れやすいと聞いたのですが2名でもそうでしょうか? 今後は2名が同時にテーブルの更新などを行う予定なのですが その場合はやはりSQLServerに移行した方が良いでしょうか? アクセスのままでもイケますか?
- ベストアンサー
- SQL Server
- hpmolhhqdtnox
- 回答数2
- OUTER JOIN、WHEREとCOUNTの併用
SQL文で Aテーブル 1 a 2 b Bテーブル 1 a null 2 a aa 3 b null 4 b bb があり、 AとBをJOINして取得したいのですが、 最終的にAテーブル一覧と、Bテーブルのaaがある項目だけをSelectしてきたいと思っております。 Select結果: 1 a 1(←aaのcountのみ) 2 b 0(←bbやnullなら0) しかし、普通にOUTER JOINして、Whereすると、 bの項目が取得できなかったり、します。 上記のようなデータを取得することは可能でしょうか?
- ベストアンサー
- SQL Server
- ENTRE
- 回答数1
- SQL Serverの型変換について
こんにちは。 DB未経験で勉強中です! どなたか教えてください。。 OracleのTO_DATE関数のようなことはSQL Serverでは実現可能でしょうか? 数値型から日付型への変換です。 たとえば20121109を2012/11/09と変換、 もしくは201211を2012/11に変換するなどです。 是非、ご教授願いします。
- ベストアンサー
- SQL Server
- kento1410
- 回答数1
- SQL データのSELECT
あるテーブルで |カラム1|カラム2|カラム3| ------------------------- |AAAAAAA|1111111|CCCCCC| |AAAAAAA|2222222|BBBBBBB| |AAAAAAA|3333333|DDDDDDD| あった場合、下記のように 2~3レコード目のカラム1の 値のみを空白で取得したい 場合、どうすればよいのでしょうか? |カラム1|カラム2|カラム3| ------------------------- |AAAAAAA|1111111|CCCCCCC| | |2222222|BBBBBBB| | |3333333|DDDDDDD|
- ベストアンサー
- SQL Server
- NoMusicNoLife49
- 回答数1
- SQLクエリ1年前のデータを削除できない
現在このクエリを作成したのですがデータが削除されなくて、データ全件が抽出されてしまいます。 以下の構文で試したのですが・・・・もし、ご指摘、アドバイス等ございましたらよろしくお願いします。 select * from テーブル名 delete from テーブル名 where 日付 < = (select DATEADD(year,(-1),(日付))) ちなみに、日付はDATETIMEです バージョン:SQL management studio 10.50.25.000
- ベストアンサー
- SQL Server
- dinarama
- 回答数1
- accessのテーブルをテーブルリンクさせたい
accessのテーブルのデータをSQLサーバーにテーブルリンクさせたいのですが どうやればいいでしょう? 新しいデータベースを作って右クリックしましたがそのようなメニューは探せません。
- ベストアンサー
- SQL Server
- KVWLTZGGTUNMJ
- 回答数2
- datetime型でNULL値を入れたい。
現在SQLserver上で、、CSVを一時テーブルに保管し、ある条件に合致する行のみTBLに追加するというストアドを書いています。そのTBLには「datetime型」の列があります。 この作業で、2点問題が発生しています。 (1)CSVファイルから一時テーブルにデータを入れようとすると、datetime列がNULLの場合、型の不一致でエラーが発生します。 (2)上記において、一時テーブルの型をとりあえずvarcharにしておくと入れれるのですが、TBLに追加しようとする際、「convert(datetime,変数)」としているのですが、上手くキャストしてくれません。(「文字列から日付への変換に失敗しました」のような文がでます) どのようにすれば、NULLでもdatetimeに入れられるのでしょうか?教えてください。
- ベストアンサー
- SQL Server
- kuu1207
- 回答数1
- SQLサーバーインストール後にコンピュータ名変更
お世話になります。 <環境> ・現在、クライアントPC(コンピュータ名:DB_PC)にSQL Server 2008 R2 ExpressEditionがインストールされています。 ・IISもインストールされておりサイトを立ち上げています。 ・SQLサーバーには他のPCよりブラウザ(ASP)やAccess(ODBC接続)、ハンディターミナル経由で、コンピュータ名(ホスト名)やIPアドレスでアクセスしにいってます。 <やりたいこと> DB_PCが故障した場合、今のところリカバリする手段が無いので、普段使用しているタブレットPC(TB_PC)を代替として利用できればと考えております。但し、あくまでも有事の際に代替として使用したいので、通常はクライアントPCとして利用します。 やり方としては、あらかじめTB_PCにSQLサーバーをインストールしておき(サービスは停止しておく)、DB_PCが故障した際に、コンピュータ名とIPアドレスをDB_PCのものに設定すればよいかなと考えています。 <質問> 現状、タブレットPCはTB_PCという名前で使用しているので、当該PCを代替として利用する際、ホスト名をDB_PCに変更する必要があり?ます。 そこで質問ですが、TB_PCにSQLサーバーをインストールする際、あらかじめDB_PCに名前を変更した状態でインストールした方がよいのでしょうか(通常はクライアントPCとして利用するので、インストール後にTB_PCに戻します)。 それとも、TB_PCのままインストールして、後でSQLサーバーの設定を修正した方がよいのでしょうか。 ※要するに、TB_PCのままインストールしても後で設定を変更出来ないのでは(代替として利用できない)ということを懸念しております。 ご教授の程、宜しくお願い致します。
- 締切済み
- SQL Server
- naoto0216
- 回答数3
- LINQでn:nテーブルを階層オブジェクトに
お世話になっております。 表題のテーマについて、理解いただける方にアドバイスお願いします。 会員を表すMembersというテーブル、 種別を表すTypesというテーブル、 会員と種別を結び付けるMemberTypeBindsというテーブルがあって、会員・種別がn対nで定義されています。 Membersの件数は200件ほど、Typeは20件程度。だいたいMembersは1~5くらいのTypeに紐づいています。 Table Members int ID(主キー, autoIncrement) varchar(20) MemberName Table Types int ID(主キー, autoIncrement) varchar(20) TypeName Table MemberTypeBinds int memberID(外部キー, MembersのID) int typeID(外部キー, TypesのID) これを、LINQで下記のクラスオブジェクトに抽出したいと思っています。 今は全件表示でもいいですが、そのうちページングで表示する必要がでてくると思います。 public class MemberTypes { public Member member { get; set; } public List<Type> types { get; set; } } どうやるかがわかりません。LINQはこんな感じだと思うのですが、 public List<MemberTypes> GetMemberTypes(){ using (var dc = new DataContext()){ var result = dc.MemTypeBinds .GroupBy(mt=>mt.Member) // このあと、どうやったらいいかがわかりません。 // DBから階層化オブジェクトを生成するのは // けっこう頻出のテーマだと思うので、しっかりマスターしたいです。 }).ToList(); return result; } } LINQに詳しい方、お助けください。
- ベストアンサー
- SQL Server
- nayutax
- 回答数1