機能しているクエリがあります。ただし、これらの会社のインボイスの日付順ではなく、会社名順のみです。
SELECT C.FULLNAME,C.COMPANY_ID,I.INVOICE_DATE FROM COMPANY C
JOIN #dsn2_alias#.INVOICE I ON I.COMPANY_ID = C.COMPANY_ID
WHERE I.INVOICE_ID IS NOT NULL AND I.INVOICE_DATE <= #attributes.date#
AND C.COMPANY_ID NOT IN (
SELECT C.COMPANY_ID FROM COMPANY C JOIN #dsn2_alias#.INVOICE I ON I.COMPANY_ID = C.COMPANY_ID WHERE I.INVOICE_ID IS NOT NULL AND I.INVOICE_DATE >= #attributes.date#
)
GROUP BY C.COMPANY_ID,C.FULLNAME,I.INVOICE_DATE ORDER BY C.FULLNAME
そして出力:
<cfoutput query="get_companies" group="company_id">
<tr height="20" onMouseOver="this.className='color-light';" onMouseOut="this.className='color-row';" class="color-row">
<td style="text-align:center;">#row#</td>
<td style="text-align:center;">#dateformat(INVOICE_DATE,'dd/mm/yyyy')#</td>
<td>#fullname#</td>
</tr>
<cfset row++/>
</cfoutput>
実際、このgroup by
句はクエリからは機能しません。cfoutput にグループ化されます。
とにかく、会社のリストがあります。各会社には複数の売上 (請求書) があります。一定期間売上がなかった会社を一覧表示したい。私はそれを達成しましたが、少し問題があります。時間指定はできません。複数の請求書があり、会社が毎回繰り返され、時間で注文できないため、ここで間違いを理解しています。ただし、注文された場合は、請求書の日付までに行われるため、会社は繰り返されます。しかし、私が見たいのは、LAST SALE DATE 時刻を持つ企業のリストだけです。セールのたびに繰り返されるわけではありません。私が明確だったことを願っています:)
お手伝いありがとう!