我有一個查詢正在工作。然而,這僅僅是由公司名稱排序,而不是這些公司的內部發票的日期:按發票日期順序排列,並且在公司表中是多個,但只顯示公司列表
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中。
無論如何,有一個公司的名單。每家公司都有多個銷售(發票)。我想列出一段時間內沒有銷售的公司。我已經實現了它,但有一點問題。我無法按時間訂購它們。我明白這裏的錯誤,因爲有多張發票,公司每次都重複一次,不能按時間排序。但是,如果訂購它們,則按發票日期完成,因此公司會重複。但我想看到的是最後一個銷售日期時間的公司列表。每次出售時都不會重複。希望我很清楚:)
謝謝你的幫助!
這是一個INNER JOIN。發票表中的invoice_id可能爲NULL是不可能的。除此之外,考慮將適當的DDL(和/或sqlfiddle)與期望的結果集一起提供。或者只是看到在GROUPWISE-MAXIMUM – Strawberry
@Strawberry下面列出的1000個查詢中的任何一個,這就是爲什麼即時通訊問我如何實現它,而不使用內部連接或以任何其他方式。我不知道如何使用jsfiddle與sql,我只能顯示圖像的輸出,我怎麼可以使用GROUPWISE-MAXIMUM? –