我有一个查询,我剥离了一些不需要的字段并在where子句中放入一个限定符。 当导出为excel,并且Load Size(查看第一个查询)中的所有字段都被删除时,我得到84行。 在第二个查询中,我只需删除几个字段并添加限定符来删除那些加载大小为0的字段。我使用相同的参数运行它,但得到87行。我不知道什么消除触发了这一点。 原始查询:给出不同的值的查询
Declare @start Varchar(20),
@end VarChar(20),
@division varchar(2),
@group varchar(20)
set @start = '02/01/2015'
set @end = '02/09/2015'
set @division= '02'
set @group = 'anodize'
--Get the most recent order date
SELECT
MAX(DATEPHYSICAL) AS 'DATEPHYSICAL',
ITEMID
INTO
#tempOrderDates
FROM
dbo.INVENTTRANS
GROUP BY
ITEMID
SELECT
ITEMID,
SUM(dbo.CUSTINVOICETRANS.QTY) AS 'Quanity',
SUM(LINEAMOUNTMST) AS 'Sales',
COUNT(DISTINCT dbo.CUSTINVOICEJOUR.SALESID) AS 'Total Orders'
INTO
#tempItemRevenue
FROM
dbo.CUSTINVOICEJOUR INNER JOIN
dbo.CUSTINVOICETRANS ON dbo.CUSTINVOICEJOUR.INVOICEID = dbo.CUSTINVOICETRANS.INVOICEID
WHERE
dbo.CUSTINVOICETRANS.DIMENSION2_ IN (@division)
AND
CONVERT(DATETIME, dbo.CUSTINVOICETRANS.INVOICEDATE, 101) BETWEEN @start AND @end
GROUP BY
ITEMID
SELECT
ITEMGROUPID AS 'Process',
[DESCRIPTION] AS 'Division',
dbo.INVENTTABLE.ITEMID AS 'Item ID',
EXTITEM AS 'Cust Item ID',
dbo.INVENTTABLE.CUSTNAME AS 'Customer',
cu.[SalesGroup],
dbo.USERINFO.NAME AS 'Sales Engineer',
cu.[Street],
cu.[City],
cu.[State],
cu.[ZipCode],
ISNULL(PRICE/CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0) AS 'Unit Price',
PRICEDATE AS 'Date of Price',
LOADQTY AS 'Load Size',
LOADQTY * ISNULL(PRICE/CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0) AS 'Load Value',
Sales,
Quanity,
[Total Orders],
CEILING(ISNULL(Quanity/CASE WHEN [Total Orders] = 0 THEN NULL ELSE [Total Orders] END, 0)) AS 'Avg. Order Quanity',
DATEPHYSICAL AS 'Last Order Date'
FROM
dbo.INVENTTABLE INNER JOIN
dbo.INVENTTABLEMODULE ON dbo.INVENTTABLE.ITEMID = dbo.INVENTTABLEMODULE.ITEMID INNER JOIN
#tempOrderDates ON dbo.INVENTTABLE.ITEMID = #tempOrderDates.ITEMID INNER JOIN
#tempItemRevenue ON dbo.INVENTTABLE.ITEMID = #tempItemRevenue.ITEMID INNER JOIN
dbo.DIMENSIONS ON NUM = dbo.INVENTTABLE.DIMENSION2_ INNER JOIN
dbo.CUSTTABLE cu ON ACCOUNTNUM = CUSTACCOUNT LEFT OUTER JOIN
dbo.SMMSALESUNITMEMBERS ON SALESUNITID = cu.SALESGROUP AND SALESMANAGER = 1 INNER JOIN
dbo.USERINFO ON ID = SALESMANID
WHERE
MODULETYPE = 2
AND
ITEMGROUPID IN (@group)
AND
dbo.INVENTTABLE.DIMENSION2_ IN (@division)
DROP TABLE #tempOrderDates
DROP TABLE #tempItemRevenue
修改后的查询摆脱推销员的东西,客户信息:
Declare @start Varchar(20),
@end VarChar(20),
@division varchar(2),
@group varchar(20)
set @start = '02/01/2015'
set @end = '02/09/2015'
set @division= '02'
set @group = 'anodize'
SELECT
ITEMID,
SUM(dbo.CUSTINVOICETRANS.QTY) AS 'Quanity',
SUM(LINEAMOUNTMST) AS 'Sales',
COUNT(DISTINCT dbo.CUSTINVOICEJOUR.SALESID) AS 'Total Orders'
INTO
#tempItemRevenue
FROM
dbo.CUSTINVOICEJOUR INNER JOIN
dbo.CUSTINVOICETRANS ON dbo.CUSTINVOICEJOUR.INVOICEID = dbo.CUSTINVOICETRANS.INVOICEID
WHERE
dbo.CUSTINVOICETRANS.DIMENSION2_ IN (@division)
AND
CONVERT(DATETIME, dbo.CUSTINVOICETRANS.INVOICEDATE, 101) BETWEEN @start AND @end
GROUP BY
ITEMID
SELECT
ITEMGROUPID AS 'Process',
[DESCRIPTION] AS 'Division',
LOADQTY AS 'Load Size',
LOADQTY * ISNULL(PRICE/CASE WHEN PRICEUNIT = 0 THEN NULL ELSE PRICEUNIT END, 0) AS 'Load Value',
Sales,
Quanity
FROM
dbo.INVENTTABLE
INNER JOIN
dbo.INVENTTABLEMODULE ON dbo.INVENTTABLE.ITEMID = dbo.INVENTTABLEMODULE.ITEMID
inner JOIN
#tempItemRevenue ON dbo.INVENTTABLE.ITEMID = #tempItemRevenue.ITEMID
INNER JOIN
dbo.DIMENSIONS ON NUM = dbo.INVENTTABLE.DIMENSION2_
WHERE
MODULETYPE = 2
AND
ITEMGROUPID IN (@group)
AND
dbo.INVENTTABLE.DIMENSION2_ IN (@division)
and LOADQTY >0
DROP TABLE #tempItemRevenue
我不;吨了解缺什么,让我不同的结果。我试着逐个挑选查询,但我没有看到它打破的地方。
您的查询看起来像您期望在您的组和变量中具有多个值。你不可能通过变化的方式来做到这一点。 – 2015-02-10 16:33:53