
色々試したのですが、再現したりしなかったりで???状態です。
下記の状態は確認できたので質問したいと思います。
勤怠コードのクロス集計の為の実験をしています。
エクセル出力する形で実行しています。
必ず三つ目のexec命令を通っています。・・・経路をテーブルに出力して確認済み
結果はT_日報の件数が出力されています。・・・これはOK
しかし列名が「xx」になってしまいます。・・・NG(「A0」にしたい)
フィールドに値が入っていません・・・NG
---------------------------------------------------
BEGIN
if 'B0'='B1'
begin
exec sp_executesql N'SELECT 勤怠コード AS xx FROM T_勤怠'
end
if 'B0'='A0'
begin
exec sp_executesql N'SELECT 勤怠コード AS B0 FROM T_勤怠'
end
else
begin
exec sp_executesql N'SELECT 勤怠コード AS A0 FROM T_日報'
end
END
------------------------------------------------------
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
構文はあっていますが、ここに開示されている情報が理由ではないと思います。
同じ環境ではないでしょうが、再現させられないですからね。少なくとも
・ここに開示されているソースだけでも再現するか
・動的クエリでない状態でストアド単体でクエリアナライザで実行しても再現するか
・動的クエリの状態でストアド単体でクエリアナライザで実行しても再現するか
・動的クエリ部分を普通のSELECTにしても再現するか
・動的クエリ部分を動的SQLでないストアドプロシージャにしてEXECする形に変更しても再現するか
・出力先をCSVやACCESSのテーブルにしても再現するか
といったあたりの切り分けはできているんですよね?
単体実行で再現するとは思えないので、OLEとの相性になってくるのかもしれません。
(BCPで動的SQLを使うな、という話は前に技術情報に出ていましたので、動的SQLでうまくいかないケースが他にあってもおかしくはない)
この回答への補足
・ここに開示されているソースだけでも再現するか・・・再現する
・動的クエリでない状態でストアド単体でクエリアナライザで実行しても再現するか・・・未検証
・動的クエリの状態でストアド単体でクエリアナライザで実行しても再現するか・・・未検証
・動的クエリ部分を普通のSELECTにしても再現するか・・・再現する
・動的クエリ部分を動的SQLでないストアドプロシージャにしてEXECする形に変更しても再現するか・・・再現する
・出力先をCSVやACCESSのテーブルにしても再現するか・・・未検証
未検証だった、クエリアナライザで実行したら、正常な結果を返しました。
SQL Server側の問題ではなさそうですので、動的クエリ使わない方法、
もしくはこの習性をふまえて別の動的クエリを再度検討してみます。
また質問するかと思いますが、よろしくお願いします。
ありがとうございました。
複数のSELECT分や複雑なストアドにアクセスが対応できていない時の
現象のようで、根本的な解決策はありませんでした。
色々、ありがとうございました。
No.1
- 回答日時:
1番目の if の END は何処?
以下のようになってるじゃないの?
if 'B0'='B1'
begin
exec sp_executesql N'SELECT 勤怠コード AS xx FROM T_勤怠'
end
if 'B0'='A0'
begin
exec sp_executesql N'SELECT 勤怠コード AS B0 FROM T_勤怠'
end
else
begin
exec sp_executesql N'SELECT 勤怠コード AS A0 FROM T_日報'
end
この回答への補足
ストアドもIFに対してENDが必要ですか?
beginに対するendと考えていましたが・・・
if 'B0'='A0'の前に END を入れるとエラーになります。
どちらにしても三つ目のexecを通っているのに別名は最初の「xx」になります。
ひょっとしたら別名は最初に出現した物になってしまうのでしょうか?
だとしても、文字列としての記述にも関わらず「xx」になってしまうのは
どうしてでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<SQL>重複しているデータの場合...
-
インストール可能なISAMド...
-
SQL Server management studio ...
-
自己相関サブクエリと自己結合...
-
Accessの重複なしのカウントの...
-
ACCESS2007 フォーム 「バリア...
-
至急お願いします!C# グループ...
-
sqlserverで対象のレコードを削...
-
Access2021 「ISNULL関数には引...
-
AccessのInsertクエリのあとつ...
-
これをSQL文で出来るでしょうか?
-
データベースのメタ値はどこに...
-
SQLで、行ごとのとある要素を比...
-
SQLについて質問です。 テーブ...
-
SQLServer 日付が直前のレコー...
-
SQLのエラー(~付近に不適切な...
-
SQLCMDにて教えていただきたい...
-
SQLの条件順番について(SQLser...
-
SQLサーバーのやり方
-
sqlで、600行あるテーブルを100...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
不明なコマンドです("FROM")。...
-
Access2010 「演算子がありませ...
-
Access2007 DoCmd.ApplyFilter...
-
スナップショット取得について...
-
漢字名のテーブルとカラムのCRE...
-
macでsqlite3でcsvのインポート
-
AccessからOracleへのリンクテ...
-
WinPE.ISO の作り方を教えてく...
-
AOMEI Backupper Standard 3.2 ...
-
オペランドが足りませんとコメ...
-
パソコンにコンポーザーをイン...
-
mfc42.dllファイルってなんです...
-
VBA シートの切り替えができな...
-
【ExcelVBA】sheet作成時にマク...
-
Excel2010でふりがなが漢字にな...
-
付箋紙95をお使いの方
-
マクロ実行ボタンがコピー出来ない
-
Windows10にアップできません。
-
AUTOCAD 2010でdwlファイルの場...
-
Microsoft Excel VBAの参照設定
おすすめ情報