0

機能しているクエリがあります。ただし、これらの会社のインボイスの日付順ではなく、会社名順のみです。

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 時刻を持つ企業のリストだけです。セールのたびに繰り返されるわけではありません。私が明確だったことを願っています:)

お手伝いありがとう!

4

1 に答える 1

0

OK、GROUPWISE-MAXIMUMに関するイチゴのヒントを使用して、自分で解決しました。

SELECT C.FULLNAME,C.COMPANY_ID,I.INVOICE_DATE 
FROM   COMPANY C INNER JOIN 
            ( 
               SELECT I.COMPANY_ID,MAX(I.INVOICE_DATE) AS INVOICE_DATE 
               FROM   #dsn2_alias#.INVOICE I GROUP BY I.COMPANY_ID
            )  
            I  ON I.COMPANY_ID = C.COMPANY_ID

WHERE   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 I.INVOICE_DATE

現在は時間順に並べられており、会社は繰り返されません:)

于 2013-12-13T11:40:25.320 に答える