• ベストアンサー

SQL2005 クエリ文について

いつもこちらで大変お世話になってます。 SQL2005です。 現在、「商品マスタ」というテーブルに、「単価」という列があり、ここには商品の単価が入っているのですが、「1663.2」 という様に小数点が入っているデータがあります。 これを切り捨てて「1663」という整数にしたいのですが、どの様なクエリ文になるのでしょうか? 先ほど、こちらでご指南頂き、データを1.05倍する、という更新は無事上手くいったのですが、小数点が出てしまいました。 どなたかご教授くださいませ。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Masa2072
  • ベストアンサー率51% (94/182)
回答No.1

Floor関数を利用します。 UPDATE 商品マスタ SET 単価 = Floor(単価) Floor関数は、指定した数値以下で最大の整数を返す関数です。 正の数なら単純に切り捨てとなりますが、負の数の場合は注意が必要です。

zenigata711
質問者

お礼

出来ました!感謝!感謝!です。

その他の回答 (1)

  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.2

回答自体は他の方がしていますが、リファレンスで自分の必要とする関数を探すと良いですよ。 http://technet.microsoft.com/ja-jp/library/ms189826%28SQL.90%29.aspx

zenigata711
質問者

お礼

わたし調理師でして、データベースとか基礎知識が全く無いのでこのページを見ても・・・自信無いですが参考に致します。ありがとう御座います。

関連するQ&A

  • SQL2005 クエリ文について

    どなたか教えて下さい。 SQL2005ですが、「商品マスタ」というテーブルに、「単価」という列があるのですが、この「単価」の数値を1.05倍したいです。 300⇒315のように。 どのようなクエリになるのでしょうか? 検索掛けたのですが、同様の質問が見付かりませんでした。よろしくお願いします。

  • SQL2008 クエリ文について

    いつも助けてもらってます。 皆様ありがとうございます。 以下の内容で1つのテーブルを更新するクエリを作りたいのですが、どうしたら良いでしょうか? 本見て自力で考えれば良いんでしょうが、、、、よろしくお願いします。 1つのテーブル、「A」があるとしまして、その中には会員Noや、SEQ、Point、Point2といった 列があります。 1つの会員Noに、3つの行、SEQ1~3が必ずあります。 更新したい行はSEQ1だけです。 Pointは整数で、Point2は小数点第一位までの表記です。 テーブルA 会員No  SEQ   Point   Point2 1001     1     20    99.0 1001     2     30    99.0 1001     3     50    15.5 1002     1     99    10.2 1002     2     99    21.6 1002     3     99     10.0 やりたい事は、 SEQ1の中で、 Pointが99以外でPoint2が99.0なら、Point2へPointの数値を移したい。 Pointが99でPoint2が99.0以外なら、PointへPoint2の四捨五入した数値を移したい。 要するに、SEQ1のPoint,Point2、片方だけ99、という現状がマズイので直したい。 という内容です。 会員No  SEQ   Point   Point2 1001     1     20    20.0 ←更新 1001     2     30    99.0 1001     3     50    15.5 1002     1     10    10.2  ←更新 1002     2     99    21.6 1002     3     99     10.0 上記の様になれば、、と思います。 何卒ご指南くださいませ。

  • SQL文を教えて下さい

    VB2008、SQL Server で開発をしています。 下記の条件でデータを取得したいのですが、SQL文がうまくできず、困っています。 おわかりの方、教えてください。 仕様:得意先マスタ(得意先M)の全件と、売上テーブル(売上T)を読みます。     売上テーブルの商品コードの商品名を商品マスタ(商品M)より取得します。     得意先マスタの全得意先を取得する必要があります。     すべての得意先の売上データが存在するわけではありません。 ACCESS上でクエリを作成し、SQLビューにすると、こうなります。 inptSyoCD:画面から入力した商品コード 1,まず、クエリ1: SELECT 売上T.伝票日付, 売上T.伝票番号, 売上T.得意先コード, 売上T.明細区分, 売上T.商品コード, 商品M.商品名称 FROM 売上T LEFT JOIN 商品M 売上T.商品コード = 商品M.商品名 WHERE 売上T.明細区分=1 AND 売上T.商品コード= inptSyoCD ; 2,次に、実際に処理するSQL文: SELECT 得意先M.得意先コード, 得意先M.得意先名称,       クエリ1.伝票日付, クエリ1.伝票番号, クエリ1.明細区分, クエリ1.商品コード, クエリ1.商品名  FROM 得意先M LEFT JOIN クエリ1 ON 得意先M.得意先コード = クエリ1.得意先コード ORDER BY 得意先M.得意先コード,売上T.伝票日付,売上T.商品コード; この2つをひとつのSQL文にする方法がわかりません。 よろしくお願いいたします。

  • SQL文の書き方

    商品  商品番号  単価   あああ  10     200 いいい  10     201 ううう    20     202 えええ  20     203 おおお  40     204 上のような1つのテーブルから単価の一番高いものの、商品と商品番号だけを表示させたい場合はどのようなsql文にすればいいのでしょうか? よろしくお願いします。

  • SQLクエリでデータベースが壊れる?

    AccessアプリでSQL Serverデータベースを更新しています。 データベースをODBCデータソースとして登録して、AccessdeそのODBCデータソースへのリンクテーブルを作っています。 データベースが何回か壊れたのですが、AccessVBAから発行したリンクテーブルへのSQLクエリでデータベースが壊れるようなことはあるんでしょうか? あるとしたら、そのクエリを発行すると必ず壊れると思うんですが・・・。 同じAccessアプリを使っても、データベースが壊れない環境もありますし・・・。 データベースが壊れた原因がわからなくて困っています。 Windows 7、SQL Server 2008 R2 Express です。

  • SQLで使うクエリ文について質問です

    いつもご回答ありがとう御座います。 UPDATE文だと思うのですが、以下の内容でデータを更新する場合はどうしたら良いでしょうか?ご指南よろしくお願いします。 今回SQL2000の中に、AとBの2つのデータベースがあり、AとB両方に顧客マスタというテーブルがあります。  Aには顧客番号1、顧客番号2、顧客番号3、と3つの列があります。 Bには顧客番号という列しかありません。 (AとB両方に共通する識別番号があります。(登録No的な) ) データ的には、Bには「AAA123DD」といった顧客番号があります。 Aは空です。 このBの顧客番号「AAA123DD」を、 Aの顧客番号1に「AAA」、顧客番号2に「123」、顧客番号3に「DD」、といった形で振り分けてコピーしたいです。 桁数は決まっているので、顧客番号1は左から何桁、といった指定は出来ます。 聞ける人が居ないので、何卒・・・・宜しくお願いいたします。   

  • ACCESSの更新クエリー活用方法の件(続き)

    ID 商品 価格 備考  フラグ という列をもつテーブルがあるとします。 こちらは、 テーブル名:商品名 としています。 これにたいして選択クエリーを使って、特定の商品だけを クエリーで引っ張ってきています。 クエリー名:抽出 このクエリー名:抽出で引っ張ってきたデータにあるフラグの列に「更新クエリー」で 1の数値を入れたいのですが、 それは更新クエリーでどのようにSQLをせっていするかたちになりますか。 更新クエリー名:更新 update 抽出元のテーブル set 任意のセル = 1 where 抽出の条件 update 商品名 set フラグ = 1 where 抽出 ; 上記方法、更新クエリーで上記SQLを設定しても、クエリー実行時に、 バラメータを要求され、結果 全てのテーブル列に1がふられます。 式が違うのでしょうか。あくまでもクエリーで抽出されたものだけに 1をふりたいのですが。 http://okwave.jp/qa/q7278856.html > http://okwave.jp/qa/q7277790.html の#1・#2です。 #1に「選択クエリは作れますか?」と書いたのをほったらかしにして、続きの質問とは・・・。 具体的なテーブル名・列名を提示してないので、イメージで書いてあるんだから 回答を丸写ししちゃダメでしょ。 > #1です。ごめんなさい。もっとシンプルに考えれば良いです。 デザインビューにしてSQLビューに切るかえる。 select 列 from 抽出元のテーブル where 抽出の条件 ; みたいなデータです。 where の前を書き換えます。 select 列 from 抽出元のテーブル の部分を update 抽出元のテーブル set 任意のセル = 1 としてください。

  • SQL文で質問

    SQL文で質問 いつもお世話になっております。 SQL文について質問です。 仮にですが、商品マスタというテーブルと、対応テーブルという二つのテーブルがあります。 対応テーブルには、商品コードが親コード、子コードといった形で構成されています。 対応テーブルのいくつかの親のコードを条件に、親コードと子コードを検索して、それぞれの商品名を検索したいと思っています。 現在、SQL文で、親コードに対応した商品名だけを取得しているのですが、子コードに対応する商品名も検索したいと思っています。 現在のSQL分としては、 SELECT 対応テーブル.親コード、商品マスタ.商品名、対応テーブル.子コード FROM 対応テーブル,商品マスタ WHERE 対応テーブル.親コード = 商品マスタ.商品コード AND 対応テーブル.親コード = 1000,1002,1004 このSQL文で検索した子コードで、商品マスタの商品名を検索したいのですが、どのようなSQLを書いたらよいのでしょうか。 ご教授願います。

  • SQLサーバーのテーブルに対してアクセスで更新クエリを行ないたい

    こんばんは。 ・vista ・アクセス2003 ・SQL Server 2005 です。 SQL ServerからテーブルをMDBへリンクしているのですが そのテーブルに対し、アクセス側で更新クエリを実行しようとすると 実行時エラー '3157': ODBC--リンク テーブル'テーブル名'での更新に失敗しました。 [Microsoft][ODBC SQL Server Driver]時間切れになりました。(#0) と言うエラーになり、更新クエリができません。 どうすればアクセスでSQLサーバーのテーブルに対して更新クエリを行えるのでしょうか? よろしくお願いします。

  • 1つのSQLで2段階の抽出を行いたい

    恐らくそれほど複雑なSQLではないと思いますが、中々SQLが作成できず困っています。 回答いただければ嬉しいです。 以下のテーブルがあったと仮定します。 テーブル名:  売上げ明細 カラム:  ・商品ID … 売上げ明細なので一意ではありません  ・単価 … 同じ商品IDでも、レコードによって単価は異なります  ・数量 … 1~5の整数のみとします 実際のデータは以下の通りです。 商品ID,単価,数量 1001,50,2 1001,60,5 1002,90,3 1003,60,5 1003,80,4 1003,90,1 1004,60,3 上記データを以下の通り抽出するには、どのようなSQLを組めばいいでしょうか? 1.まず各商品IDの中から単価が最大のレコードだけを取り出す 商品ID,単価,数量 1001,60,5 1002,90,3 1003,90,1 1004,60,3 2.次に数量でgroup by して、件数をカウントする 数量,件数 1,1 3,2 5,1 1つのSQL文で2の結果が得られれば、途中の抽出条件は特に問いません。 ちなみにMySQL5を使っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL