我是Crystal Reports的新手,我有问题,因为我的同事通常做这些东西在家里生病我需要弄清楚自己。我有2张桌子。
首先是这样的:
Article.ID Article.name Article.buyingprice
1 aa 2.00
2 bb 1.00
3 cc 3.50
4 dd 4.20
5 ee 2.00
第二个是这样的:
Income.ID Income.article Income.date Income.number Income.quantity
1 2 79100 P1 2.00
2 1 79100 P1 3.00
3 4 79101 P2 2.00
4 3 79101 P2 1.00
5 1 79101 P2 4.00
6 5 79101 P2 1.00
7 2 79103 P3 15.00
我需要的是从最新的收入文件中选择Income.quantity的公式。例如,对于文章aa,它将是4.00,对于文章bb,它将是15.请保存我的工作伙伴:)
报告按article.name分组。
答案 0 :(得分:0)
This Can Be Achieved in SQl server by using CTE
BEGIN TRAN
CREATE TABLE #Article (ID INT ,name NVARCHAR(20),buyingprice Decimal (15,2))
CREATE TABLE #Income (ID INT ,article INT,DATE nvarchar(50),number nvarchar(20),quantity Decimal (15,2))
insert into #Article
SELECT 1,'aa',2.00 union all
SELECT 2,'bb',1.00 union all
SELECT 3,'cc',3.50 union all
SELECT 4,'dd',4.20 union all
SELECT 5,'ee',2.00
insert into #Income
select 1,2,'79100','P1',2.00 union all
select 2,1,'79100','P1' ,3.00 union all
select 3,4,'79101','P2',2.00 union all
select 4,3,'79101','P2',1.00 union all
select 5,1,'79101','P2',4.00 union all
select 6,5,'79101','P2',1.00 union all
select 7,2,'79103','P3',15.00
go
with CTE as
( select A.ID,name,b.date, B.quantity,ROW_NUMBER() OVER(PARTITION BY a.ID,name ORDER BY a.ID,name ) AS Rn
FROM #Article A inner JOIN #Income B ON A.ID=B.article
)
SELECT a.ID,a.date,a.name, a.quantity
FROM CTE a
WHERE a.Rn= (SELECT MAX(rn) FROM cte b)
ROLLBACK TRAN
答案 1 :(得分:0)
对于您的解决方案,您可以在Crystal报表中创建一个组
if(previous({Command.Aritcle.ID}) = {Command.Aritcle.ID}) then true else false;