条件のセットに対してPayrollOIDが必要な2つのテーブルの間にクロスジョインがあります。私はCASEステートメント、WHERE句のCASEとIIFステートメントでこれをやろうとしましたが、通常のコードでは空きを取り除くために別のパスを実行する必要があります。SQL> =および<= IIFまたはWHEREエラーが発生する
私は、承認日に基づいて給与計算に行く仕事の承認を持っています。承認が入力された日に変更しています。 Apr_Enteredは> = JobPayStartとApr_Entered < = TimesheetsDueとJobEndDate> = JobPayStartとJobEndDate < = JobPayEndある場合
- OIDことを私に与えます。他に何も見ないでください。
他 - 私は、Apr_EnteredがJobPayStart以上で、Apr_Enteredが= JobPayEndであるところで、仕事を支払うとします。
エラーが発生しました:関数の引数のリストでエラーが発生しました: '>'は認識されません。クエリテキストを解析できません。
しかし、実行されます。私はしかし、両方の括弧がオーバーラップジョブのために表示されている重複を取得しています。
私のブックエンドを緊張させる助けが必要です。私はまた、なぜ私はまだ私は日付のフィールドを比較するためにdatetimeフィールドを変換したときにエラーを取得しているかを知る必要があります。
IIF(CONVERT(varchar(10), ProtoPayroll.AprEntered,110) >= CONVERT(varchar(10), PayDates.PayStartDate,110)
AND CONVERT(varchar(10), ProtoPayroll.AprEntered,110) <= CONVERT(varchar(10), PayDates.TimesheetsDue,110)
AND CONVERT(varchar(10), ProtoPayroll.JobEndDate,110) >= CONVERT(varchar(10), PayDates.PayStartDate,110)
AND CONVERT(varchar(10), ProtoPayroll.JobEndDate,110) <= CONVERT(varchar(10), PayDates.PayEndDate,110),
--First IIF's result
CONVERT(nvarchar(40), dbo.Paydates.OID),
--Now another IIF
IIF (CONVERT(varchar(10), ProtoPayroll.AprEntered,110) >= CONVERT(varchar(10), PayDates.PayStartDate,110)
AND CONVERT(varchar(10), ProtoPayroll.AprEntered,110) <= CONVERT(varchar(10), PayDates.PayEndDate,110),
--Second IIF's results
CONVERT(nvarchar(40), dbo.Paydates.OID), SPACE(40))) AS PayrollOID
なぜあなたは 'varchar'にあなたの日付を(私は推測)に変換されているを見ていますか? – Larnu
問題を再現するスクリプトを投稿できない限り、誰もこの質問に確実に答えられるとは思えません。 –