
どうしてもIF文がうまくいきません
IF文の中にIFを入れ子していますそのIFが複数の条件があります
今までACCESSではELSEIFで条件をいくらでも指定できたのですがSQLの場合はエラーになってしまいます
ご教授おねがいします
------------------------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER FUNCTION [dbo].[scfc_part端数処理]
( @PTHASU nvarchar(10), @haken nvarchar(10) )
RETURNS
real
AS
BEGIN
DECLARE @PARTT real
DECLARE @PARTT_H real
if (not(@PTHASU is null))
if @haken='派遣' or @haken='臨時'
if substring(@PTHASU,4,2)>= 50
SET @PARTT = convert(int,LEFT(@PTHASU,2)+1)*60
--ここをいれるとエラー IF substring(@PTHASU,4,2)< 50 and substring(@PTHASU,4,2)>= 20
--ここをいれるとエラー SET @PARTT = convert(int,LEFT(@PTHASU,2)*60 +30
--ここをいれるとエラー if substring(@PTHASU,4,2)< 20
--ここをいれるとエラー SET @PARTT = convert(int,LEFT(@PTHASU,2)*60
ELSE
SET @PARTT = convert(real,LEFT(@PTHASU,2))*60 + convert(real,substring(@PTHASU,4,2))*1
ELSE
SET @PARTT= 0
SET @PARTT_H = convert(real,(floor(@PARTT/60*10000)/10000))
RETURN @PARTT_H
END
No.1ベストアンサー
- 回答日時:
マニュアルを読みましょう。
if 条件
真の時の命令文
else
偽の時の命令文
で、真または偽で命令文を2個以上書く場合は、begin~endでブロックを構成する必要があります。
参考URL:http://msdn2.microsoft.com/ja-jp/library/ms18271 …
すみません
SET @PARTT = convert(int,LEFT(@PTHASU,2)*60 +30のかっこがぬけていていました
ありがとうございました
No.2
- 回答日時:
こんな感じかな。
if a > b
begin
if b > c
begin
if c > d
begin
set @ABC=1
end
else
begin
set @ABC=2
end
end
else
begin
set @ABC=3
end
end
else
begin
set @ABC=4
end
すみません
SET @PARTT = convert(int,LEFT(@PTHASU,2)*60 +30のかっこがぬけていていました
以下のように完成できました
ありがとうございました
--------------------------------
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER FUNCTION [dbo].[scfc_part端数処理]
( @PTHASU nvarchar(10), @haken nvarchar(10) )
RETURNS
real
AS
BEGIN
DECLARE @PARTT real
DECLARE @PARTT_H real
if (not(@PTHASU is null))
if @haken='派遣' or @haken='臨時'
begin
if substring(@PTHASU,4,2)>= 50
SET @PARTT = convert(real,LEFT(@PTHASU,2)+1)*60
else
IF substring(@PTHASU,4,2)< 50 and substring(@PTHASU,4,2)>= 20
SET @PARTT = convert(real,LEFT(@PTHASU,2))*60 +30
else
SET @PARTT = convert(real,LEFT(@PTHASU,2))*60
end
ELSE
SET @PARTT = convert(real,LEFT(@PTHASU,2))*60 + convert(real,substring(@PTHASU,4,2))*1
ELSE
SET @PARTT= 0
SET @PARTT_H = convert(real,(floor(@PARTT/60*10000)/10000))
RETURN @PARTT_H
END
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) 実行時エラー´5854´ 文字列型パラメーターが長すぎます。 3 2023/06/08 21:17
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- C言語・C++・C# 大量のデータを読み込んで表示する速度を改善したい 8 2023/05/07 13:29
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
ACCESS2000ディスクまたはネッ...
-
エクセルマクロで指定範囲内の...
-
Oracle 8i コンマ(,)を含むデ...
-
全ストアドを対象に文字列を置...
-
Access2000環境に対応するMid関...
-
レポートが開けない。
-
GROUP BYでエラーが発生
-
oo4oのMovePreviousnメソッドに...
-
SQLServer・ストアドプロシージ...
-
LIkEで漢字一文字検索でエラー
-
CSV出力時、件数によりエラーと...
-
クエリの存在チェック
-
●SQL Server2000●ストアドプロ...
-
Access2000でDAOを使用したとき...
-
PostgreSqlでFunctionの作成に...
-
ORA-1036??
-
アクセスでの通常のマクロの実...
-
エクセルからSQLサーバー ...
-
エクセルのグループボックス枠...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLのエラー(~付近に不適切な...
-
Oracle 8i コンマ(,)を含むデ...
-
PostgreSqlでFunctionの作成に...
-
バッチファイルからのBCP起動に...
-
ACCESS ADOでupdateが効かない
-
ACCESS2000ディスクまたはネッ...
-
GROUP BYでエラーが発生
-
エクセルマクロで指定範囲内の...
-
何も表示されない実行時エラー...
-
エクセルのグループボックス枠...
-
sqlで文字列を最後に追加したい
-
エクセルからSQLサーバー ...
-
ACCESSで作成したアプリケーシ...
-
クエリの存在チェック
-
Access2000環境に対応するMid関...
-
複数の表の外部結合について
-
SQLServerが存在しないか、アク...
-
自作関数を含んだクエリをエク...
-
SQLServer・ストアドプロシージ...
-
SQLserverのIF文について
おすすめ情報