通过 visual studio c# 在 Crystal 报告中编写自定义查询

Write a custom query in Crystal Report by visual studio c#

我想创建一个 Crystal 报告,它从 3 MySQL table 中获取值,但我想编写自定义查询,因为当我 select tables in visual studio 它显示的查询不符合我的预期。 我在 localhost phpMyAdmin 上测试了查询并且它有效。

注意 1:我正在使用 visual studio 2019 并安装了 Crystal 报告 SP26 注 2:当 visual studio 编写查询时,它向 table 名称添加了“1” 喜欢 boq_table 使之成为 boq_table1.

下面的代码表示我要执行的查询:

SELECT
    ubc.boq_table.itemNum,
    ubc.boq_table.descriptionOfWork,
    ubc.boq_table.unit,
    ubc.boq_table.contractualQuantity,
    ubc.boq_table.priceNum,
    ubc.summary.executedQuantLastSummary,
    ubc.summary.priceLastWorks,
    ubc.summary.executedQuantBetw2Sum,
    ubc.submittal.priceCurrentWorks
FROM
    ubc.boq_table
LEFT OUTER JOIN ubc.summary ON
    ubc.boq_table.itemNum = ubc.summary.itemNum
LEFT OUTER JOIN ubc.submittal ON
    ubc.boq_table.itemNum = ubc.submittal.itemNum
WHERE
    ubc.boq_table.projectName ='proj'
UNION
SELECT
    ubc.boq_table.itemNum,
    ubc.boq_table.descriptionOfWork, 
    ubc.boq_table.unit, 
    ubc.boq_table.contractualQuantity, 
    ubc.boq_table.priceNum, 
    ubc.summary.executedQuantLastSummary, 
    ubc.summary.priceLastWorks, 
    ubc.summary.executedQuantBetw2Sum, 
    ubc.submittal.priceCurrentWorks 
FROM
    ubc.summary
LEFT OUTER JOIN ubc.boq_table ON 
    ubc.summary.itemNum = ubc.boq_table.itemNum 
LEFT OUTER JOIN ubc.submittal ON 
    ubc.summary.itemNum = ubc.submittal.itemNum 
WHERE 
    ubc.summary.projectName = 'proj'  
UNION
SELECT
    ubc.boq_table.itemNum,
    ubc.boq_table.descriptionOfWork,
    ubc.boq_table.unit,
    ubc.boq_table.contractualQuantity,
    ubc.boq_table.priceNum,
    ubc.summary.executedQuantLastSummary, 
    ubc.summary.priceLastWorks, 
    ubc.summary.executedQuantBetw2Sum, 
    ubc.submittal.priceCurrentWorks 
FROM
    ubc.submittal 
LEFT OUTER JOIN ubc.boq_table ON 
    ubc.submittal.itemNum = ubc.boq_table.itemNum 
LEFT OUTER JOIN ubc.summary ON 
    ubc.submittal.itemNum = ubc.summary.itemNum 
WHERE 
    ubc.submittal.projectName = 'proj' 
ORDER BY 
    itemNum;

并且此代码是 visual studio 在我 selected tables

之后编写的
 SELECT boq_table1.itemNum, boq_table1.descriptionOfWork, boq_table1.unit, boq_table1.contractualQuantity, boq_table1.priceNum, submittal1.priceCurrentWorks, summary1.executedQuantLastSummary, summary1.executedQuantBetw2Sum, summary1.priceLastWorks
 FROM   (ubc.boq_table boq_table1 INNER JOIN ubc.submittal submittal1 ON boq_table1.ID=submittal1.ID) INNER JOIN ubc.summary summary1 ON boq_table1.ID=summary1.ID
 ORDER BY boq_table1.itemNum

最后的代码只读我不能编辑

如果你想获取数据到crystal reprots,你可以做两件事,你再看看数据库选择器,有一个选项可以添加命令或使用连接器和数据读取器来构建一个您可以使用的数据集。

第一个可以,如果你不需要大量计算数据的话。