SP Данные о продажах за предыдущий год с указанной даты - PullRequest
0 голосов
/ 28 декабря 2010

Как отобразить данные за текущий год и предыдущие данные в двух столбцах SQL Server 2000

Ниже в процедуре показаны мои данные за заданную дату. Я хочу установить данные за предыдущий год с указанной даты в другом столбце

SELECT TOP 100 PERCENT
  dbo.SI_Item.ig2_Code, dbo.SI_ItemGroup2.ig2_Desc,    
  SUM(SI_InvoiceDetail.invcd_Rate * dbo.SI_InvoiceDetail.invcd_Qty -
      dbo.SI_InvoiceDetail.invcd_DiscountAmt) AS Total
FROM
  dbo.SI_InvoiceDetail
INNER JOIN
  dbo.SI_Item ON dbo.SI_InvoiceDetail.itm_ItemCode = dbo.SI_Item.itm_ItemCode
INNER JOIN
  dbo.SI_InvoiceMaster ON dbo.SI_InvoiceDetail.invcm_CoCode = dbo.SI_InvoiceMaster.invcm_CoCode AND 
  dbo.SI_InvoiceDetail.invcm_BrCode = dbo.SI_InvoiceMaster.invcm_BrCode AND 
  dbo.SI_InvoiceDetail.invcm_SiteCode = dbo.SI_InvoiceMaster.invcm_SiteCode AND 
  dbo.SI_InvoiceDetail.invcm_Year = dbo.SI_InvoiceMaster.invcm_Year AND 
  dbo.SI_InvoiceDetail.invcm_Period = dbo.SI_InvoiceMaster.invcm_Period AND 
  dbo.SI_InvoiceDetail.docs_DocCode = dbo.SI_InvoiceMaster.docs_DocCode AND 
  dbo.SI_InvoiceDetail.doctyp_Code = dbo.SI_InvoiceMaster.doctyp_Code AND 
  dbo.SI_InvoiceDetail.invcm_DocNo = dbo.SI_InvoiceMaster.invcm_DocNo
INNER JOIN
  dbo.SI_ItemGroup2 ON dbo.SI_Item.ig2_Code = dbo.SI_ItemGroup2.ig2_Code
WHERE  (dbo.SI_InvoiceDetail.docs_DocCode = 'inv') AND 
       (dbo.SI_InvoiceDetail.itm_ItemCode BETWEEN '0101010000001' AND '0301020004001') AND
       (dbo.SI_InvoiceMaster.invcm_Date BETWEEN @Invcm_date_from AND @Invcm_date_to)
GROUP BY dbo.SI_Item.ig2_Code ,SI_ItemGroup2.ig2_Desc

1 Ответ

0 голосов
/ 28 декабря 2010

Решено 70% путем изменения в запросе, как показано ниже

ВЫБЕРИТЕ ТОП 100 ПРОЦЕНТОВ dbo.SI_Item.ig2_Code, dbo.SI_ItemGroup2.ig2_Desc, год (dbo.SI_InvoiceMaster.invcm_Date) AS SalesYear,

&

Группировка по годам (dbo.SI_InvoiceMaster.invcm_Date), dbo.SI_Item.ig2_Code, SI_ItemGroup2.ig2_Desc

ORDER BY Year (dbo.SI_InvoiceMaster.invcm_Dbo. D.), D.ig2_Code

но он работает, но не так, как я хочу, потому что его показ года в диапазоне дат Row и User mut inpuer примерно 2 года затем покажет.

если кто-то получил правильное решение, поделитесь, пожалуйста

...