参数值

时间:2017-04-20 18:22:47

标签: sql ms-access

任何人都可以告诉我为什么以下查询要求我输入参数值。它应该(或者至少我想)用来自'的数据来填充表格。它从哪里拉出来:

SELECT [BILLING_REJECTS_orig].[ORG NBR] AS BK,
    [BILLING_REJECTS_orig].[ACCOUNT NUMBER] AS ACCT,
    [BILLING_REJECTS_orig].APPL AS AP,
    [BILLING_REJECTS_orig].[ACCOUNT NAME] AS [ACCT NAME],
    [BILLING_REJECTS_orig].[TMO NAME],
    IIf(Len(DatePart("m", [BILLING_REJECTS_orig]![REPORT DATE])) = 1, Year([BILLING_REJECTS_orig]![REPORT DATE]) & "-" & "0" & Month([BILLING_REJECTS_orig]![REPORT DATE]), Year([BILLING_REJECTS_orig]![REPORT DATE]) & "-" & Month([BILLING_REJECTS_orig]![REPORT DATE])) AS [ACTIVITY MONTH]
INTO Billing_Rejects_Orig
FROM dbo_BILLING_REJECTS_DEPT,
    TM_Report_Date
WHERE (
        ((Year([Billing_Rejects_Orig]![REPORT DATE])) = Year([TM_Report_Date]![Report_Date]))
        AND ((Month([Billing_Rejects_Orig]![REPORT DATE])) = Month([TM_Report_Date]![Report_Date]))
        );

1 个答案:

答案 0 :(得分:1)

由于@WEI_DBA指出对表的引用不正确,请考虑使用bt所示的表别名。这样可以减少SQL代码并且是一个有用的可维护性工具,因为您可以在FROMJOIN子句中切换表名,而无需重写整个查询,假设结构表相同。

特别是在MS Access是一个默认的后端数据库(Jet / ACE),它可以与其他RDBMS(SQL Server,MySQL等)一起切换,偶尔用于原型设计,表别名可以帮助在链接和本地表。

SELECT b.[ORG NBR] AS BK,
       b.[ACCOUNT NUMBER] AS ACCT,
       b.APPL AS AP,
       b.[ACCOUNT NAME] AS [ACCT NAME],
       b.[TMO NAME],
       IIf(Len(DatePart('m', b.[REPORT DATE])) = 1, 
           Year(b.[REPORT DATE]) & '-' & '0' & Month(b.[REPORT DATE]), 
           Year(b.[REPORT DATE]) & '-' & Month(b.[REPORT DATE])) AS [ACTIVITY MONTH]
INTO Billing_Rejects_Orig
FROM dbo_BILLING_REJECTS_DEPT b, 
     TM_Report_Date t
WHERE (
       ((Year(b.[REPORT DATE])) = Year(t.[Report_Date]))
   AND ((Month(b.[REPORT DATE])) = Month(t.[Report_Date]))
      );