2つの別々のクエリに基づいてクエリのクエリを使用しようとしていますが、私が望む結果が得られません。私はSQLとColdfusionの両方で初心者だと考えています。私はColdfusion 2016とSQL Server 2012を使用しています。2つの異なるクエリ結果に対してColdFusionクエリのクエリを使用できますか?
最初のリクエスト:料金が免除され、オーディションを予定しているすべての応募者の名前を教えてください。
dsn1.table1 - 申請表
dsn1.table2 - オーディションテーブル
<cfquery name="getApplicants" datasource="dsn1">
SELECT dbo.table1.STU_ID, dbo.table1.NAME, dbo.table1.FEE_STATUS
FROM dbo.table1, dbo.table2
WHERE (dbo.table1.STU_ID = dbo.table2.STU_ID) AND FEE_STATUS = 'WAIVED'
</cfquery>
この作品
!
フォローアップ依頼:一部の申請者は、手数料が免除されたことを知らなかったため、依然として支払いプロセスを経ていました。手数料を免除され、オーディションを予定していて、支払っていないすべての応募者を私に渡してください。
dsn2.table3 - 支払い情報が含まれています。アプリケーションプロセスにタイムスタンプを付けるアプリケーション(STU_ID)のエントリは複数あります。サンプル:
<cfquery name="getNonPayees" datasource="dsn2">
SELECT dbo.table3.STU_ID, dbo.table3.PAYMENT_STATUS
FROM dbo.table3
WHERE dbo.table3.PAYMENT_STATUS <> 'PAID'
</cfquery>
この作品:
John Doe 123456789 - TENTATIVE - timestamp1 123456789 - PAID - timestamp2 123456789 - EMAILED - timestamp3 123456789 - FINALIZED - timestamp4 Jane Doe 234567895 - TENTATIVE - timestamp1 234567895 - TENTATIVE - timestamp2 234567895 - TENTATIVE - timestamp3 234567895 - CUSTOMER CANCELLED BEFORE PROCESSING PAYMENT - timestamp4 John Smith 345678951 - TENTATIVE - timestamp1 345678951 - TENTATIVE - timestamp2 345678951 - TENTATIVE - timestamp3 345678951 - TENTATIVE - timestamp4 345678951 - PAID - timestamp5 345678951 - FINALIZED - timestamp6 345678951 - EMAILED - timestamp7
私のアプローチは、最初の非振込先を取得することでした!その後
、私はgetApplicantsとgetNonPayeesからの結果と一致するように、クエリのクエリを使用するつもりだった。
<cfquery dbtype="query" name="QofQ">
SELECT getApplicants.NAME
FROM getApplicants, getPaymentStatus
WHERE getApplicants.STU_ID = getPaymentStatus.STU_ID
</cfquery>
ERROR: The select column reference [getApplicants.NAME] is not found in table [getApplicants].
<cfquery dbtype="query" name="QofQ">
SELECT DISTINCT getApplicants.NAME
FROM getApplicants, getPaymentStatus
WHERE getApplicants.STU_ID = getPaymentStatus.STU_ID
</cfquery>
ERROR: The select column reference [getApplicants.NAME] is not found in table [getApplicants].
<cfquery dbtype="query" name="QofQ">
SELECT *
FROM getApplicants, getPaymentStatus
WHERE getApplicants.STU_ID = getPaymentStatus.STU_ID
</cfquery>
または
<cfquery dbtype="query" name="QofQ">
SELECT NAME
FROM getApplicants, getPaymentStatus
WHERE getApplicants.STU_ID = getPaymentStatus.STU_ID
</cfquery>
エラーはありませんが、QofQのレコードはゼロです。お知らせ下さい。ありがとうございました!
疑わしいときは、自分のデータを見てください。この場合、getApplicantsの列リストを開始するのがよいでしょう。 –
すみません。その最後のコードとエラーを削除する必要があります。私は、実際の変数の代わりにNAMEをテストしたので、generic(例えばtable1、table2など)として "NAME"を試してみました。私が終わったのはエラーではなく、レコード数がゼロだった。 – airpolgas
QのQを使用せず、単にデータベースクエリに別のフィルタを追加すると考えましたか? –