簡體   English   中英

MS Access:自定義交叉表查詢行排序

[英]MS Access: Custom crosstab query row sorting

這是我的交叉表查詢。 我想先用特定的 VENDOR_NAME 訂購它,然后讓 rest 按字母順序排列。 我在整個項目中的許多其他(非交叉表)查詢中使用:

ORDER BY iif(VENDOR_NAME = 'GNC',0,1), VENDOR_NAME ASC, ITEM_NO

當我嘗試將其放入交叉表查詢時,我被告知 iif 語句與 GROUP BY 子句沖突。 有沒有辦法解決? 完整的交叉表代碼如下。

PARAMETERS Forms!frm_PSFViewer!cmb_TDNo Long;
TRANSFORM Sum(PREKIT_CONTENTS.ITEM_QTY) AS SumOfITEM_QTY
SELECT 
PSF_ITEM_DETAILS.ITEM_KEY
,VENDORS.VENDOR_NAME
,ITEMS.ITEM_NO
FROM VENDORS 
INNER JOIN (PREKITS 
INNER JOIN ((ITEMS 
INNER JOIN PREKIT_CONTENTS 
   ON ITEMS.ITEM_ID = PREKIT_CONTENTS.ITEM_KEY) 
INNER JOIN PSF_ITEM_DETAILS 
   ON ITEMS.ITEM_ID = PSF_ITEM_DETAILS.ITEM_KEY) 
   ON PREKITS.PREKIT_ID = PREKIT_CONTENTS.PREK_KEY) 
   ON VENDORS.VENDOR_ID = PSF_ITEM_DETAILS.PRNT_VEND_KEY
WHERE ((([PREKITS].[PSF_KEY])=[Forms]![frm_PSFViewer]![cmb_TDNo]) 
   AND ((PREKITS.PREKIT)<>'ARCHWAY'))
GROUP BY PSF_ITEM_DETAILS.ITEM_KEY, VENDORS.VENDOR_NAME, ITEMS.ITEM_NO
ORDER BY VENDORS.VENDOR_NAME, ITEMS.ITEM_NO
PIVOT PREKIT_CONTENTS.PREK_KEY;

我想我通過將 iif 添加到 GROUP BY 子句來修復它。

PARAMETERS Forms!frm_PSFViewer!cmb_TDNo Long;
TRANSFORM Sum(PREKIT_CONTENTS.ITEM_QTY) AS SumOfITEM_QTY
SELECT 
PSF_ITEM_DETAILS.ITEM_KEY
,VENDORS.VENDOR_NAME
,ITEMS.ITEM_NO
FROM VENDORS 
INNER JOIN (PREKITS 
INNER JOIN ((ITEMS 
INNER JOIN PREKIT_CONTENTS 
   ON ITEMS.ITEM_ID = PREKIT_CONTENTS.ITEM_KEY) 
INNER JOIN PSF_ITEM_DETAILS 
   ON ITEMS.ITEM_ID = PSF_ITEM_DETAILS.ITEM_KEY) 
   ON PREKITS.PREKIT_ID = PREKIT_CONTENTS.PREK_KEY) 
   ON VENDORS.VENDOR_ID = PSF_ITEM_DETAILS.PRNT_VEND_KEY
WHERE ((([PREKITS].[PSF_KEY])=[Forms]![frm_PSFViewer]![cmb_TDNo]) 
   AND ((PREKITS.PREKIT)<>'ARCHWAY'))
GROUP BY PSF_ITEM_DETAILS.ITEM_KEY, iif(VENDOR_NAME = 'GNC',0,1), VENDOR_NAME, ITEMS.ITEM_NO
ORDER BY iif(VENDOR_NAME = 'GNC',0,1), ITEMS.ITEM_NO
PIVOT PREKIT_CONTENTS.PREK_KEY;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM