C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: クエリビルダーについての質問です。


(過去ログ 129 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■76364 / inTopicNo.1)  クエリビルダーについての質問です。
  
□投稿者/ よぽん (47回)-(2015/07/02(Thu) 09:21:31)

分類:[.NET 全般] 

2015/07/02(Thu) 11:08:49 編集(投稿者)
2015/07/02(Thu) 11:08:42 編集(投稿者)

c# に関する質問でなくてごめんなさい。
ここじゃぁなくて、xxxで質問しなさいっていう場合は
xxxを紹介してください。

クエリビルダーのクエリの実行での質問ですが
VisualStudio2013を使っています。

1.CEILING の動作がうまくいきません。
たとえば 10 も 10.5 も 10 になります。

2.使用できない最新の関数があります。
  ROW_NUMBER とか

3.@NUM を float で渡したいのですが
  float で受け取ってくれません。
  自動的にnvarchar になるみたいで
  例>SELECT TOP(CAST(CEILING(ABS(@NUM)) AS INT))
  データ型intに変換できませんでしたのエラーが発生する

これらを正常に動作させるにはどうすればよいでしょうか?

また、クエリビルダーの最新版が存在して、
最新版のバージョンアップとかできるのでしょうか?


引用返信 編集キー/
■76365 / inTopicNo.2)  Re[1]: クエリビルダーについての質問です。
□投稿者/ 魔界の仮面弁士 (389回)-(2015/07/02(Thu) 11:09:53)
No76364 (よぽん さん) に返信
> c# に関する質問でなくてごめんなさい。
大丈夫ですよ。C# 限定の掲示板というわけでも無いですし。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=7966&KLOG=19


> クエリビルダーのクエリの実行での質問ですが
対象データベースの製品名とバージョン・エディションは何でしょうか?
また、クエリビルダーの「データソース」では、どのミドルウェアを用いて接続されていますか?


> 1.CEILING の動作がうまくいきません。
CEILING 関数を備えるのは、SQL Server や MySQL などですね。
Oracle や PostgreSQL の場合は CEIL 関数だったはず。
(DB2 の場合は、CEILING も CEIL もあったかな…)


> たとえば 10 も 10.5 も 10 になります。
変換元の数値のデータ型と小数点精度(有効桁数)は何でしょうか?

たとえば 「21 / 2」のような計算を行った場合、
Oracle では NUMBER 型の「10.5」となりますが、
SQL Server では int 型の「10」となります。

当然ながら、後者を CEILING した場合は、11 とはなりません。
「21.0 / 2.0」であれば、numeric 型の「10.5」なので
CEILING によって 11 に変化するのですけれどね。


> 2.使用できない最新の関数があります。
>   ROW_NUMBER とか
クエリビルダーは、一部の構文を解析できません。
(PARTITION 句や高次の副問い合わせ、テーブルを返す関数、ユーザー定義型など)

とはいえ、構文解析ができないできないだけで、実行自体は可能です。
クエリービルダーを右クリックして、「ペイン」メニューから
『ダイアグラム』と『抽出条件』を Off にしてみてください。
『SQL』と『結果』だけが On の状態であれば、たとえば
下記のような SQL も実行できるかと思います。

-------------
SELECT 
  KAISHA_CD
, ROW_NUMBER() OVER (PARTITION BY KAISHA_CD ORDER BY TENPO_CD) AS 社内連番
, TENPO_CD
FROM TABLE1
ORDER BY 2
-------------

引用返信 編集キー/
■76367 / inTopicNo.3)  Re[2]: クエリビルダーについての質問です。
□投稿者/ よぽん (48回)-(2015/07/02(Thu) 18:25:05)
No76365 (魔界の仮面弁士 さん) に返信
> 対象データベースの製品名とバージョン・エディションは何でしょうか?
> また、クエリビルダーの「データソース」では、どのミドルウェアを用いて接続されていますか?
データベースは SQLServer 2014 です。
ミドルウェアってなんでしょうか?

>
> 変換元の数値のデータ型と小数点精度(有効桁数)は何でしょうか?

SELECT TOP(CAST(CEILING(ABS(@NUM)) AS INT))
Data1, Data2
FROM  DataBase

このような SQL を記述すると自動で設定されるみたいです。
ちなみに変更する方法はわかんないです。
ただ、データプレビューでは正常に処理されますし、もちろん、SQL Server Management Studio でも正常です。


> とはいえ、構文解析ができないできないだけで、実行自体は可能です。
> クエリービルダーを右クリックして、「ペイン」メニューから
> 『ダイアグラム』と『抽出条件』を Off にしてみてください。

はい、できました。
ありがとうございます。

引用返信 編集キー/
■76368 / inTopicNo.4)  Re[3]: クエリビルダーについての質問です。
□投稿者/ 魔界の仮面弁士 (390回)-(2015/07/02(Thu) 19:15:45)
No76367 (よぽん さん) に返信
>>また、クエリビルダーの「データソース」では、どのミドルウェアを用いて接続されていますか?
> ミドルウェアってなんでしょうか?

すみません、分かりにくかったですね。
OleDb 接続なのか、SqlClient 接続なのかといった情報のことです。
http://www.doppo1.net/oracle/middleware.html


> SELECT TOP(CAST(CEILING(ABS(@NUM)) AS INT))
> 	Data1, Data2
> FROM  DataBase
> このような SQL を記述すると自動で設定されるみたいです。
> ちなみに変更する方法はわかんないです。

パラメーターの型を無理矢理決めるとすれば、

DECLARE
  @NUM NUMERIC(10, 3)
BEGIN
  SET @NUM = 10.5

  SELECT TOP (CAST(CEILING(ABS(@NUM)) AS INT))
  Data1, Data2
  FROM DataBase

END

などですかね。

例によって、ダイアグラムと抽出条件を Off にしないと実行できないので、
クエリービルダーで扱うには些か酷な記述ですが…。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -