Vb.net 如何在crystal report中显示数据而不复制数据?
我在使用left join在crystal reports中显示数据时遇到问题,因为即使我在sqlcommand中使用GROUP BY,它也会复制我的数据 以下是我的表格列表:Vb.net 如何在crystal report中显示数据而不复制数据?,vb.net,crystal-reports,sap,Vb.net,Crystal Reports,Sap,我在使用left join在crystal reports中显示数据时遇到问题,因为即使我在sqlcommand中使用GROUP BY,它也会复制我的数据 以下是我的表格列表: table 1: complaint 以下是我在crystal reports中的代码: Dim objConn As MySqlConnection Dim daT1, daT2 As MySqlDataAdapter Dim activecomp As DataSet Dim s
table 1: complaint
以下是我在crystal reports中的代码:
Dim objConn As MySqlConnection
Dim daT1, daT2 As MySqlDataAdapter
Dim activecomp As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "server=localhost;user id=root;password=;database=ticketing_system;"
objConn = New MySqlConnection(strConnection)
objConn.Open()
strSQL = "SELECT * FROM errordesc LEFT JOIN complaint ON errordesc.tran_no=complaint.tran_no WHERE errordesc.status='On-process' group by errordesc.err_id "
daT1 = New MySqlDataAdapter(strSQL, objConn)
activecomp = New DataSet
daT1.Fill(activecomp, "comp")
daT1.Fill(activecomp, "active")
Dim rpt As New CrystalReport1
rpt.SetDataSource(activecomp)
CrystalReportViewer1.ReportSource = rpt
objConn.Close()
我的结论是:
它复制了我的errordesc.err\u我甚至认为我把它分组了(如果有人知道,请帮助。提前感谢…我认为删除重复行的简单方法是更改您的
strSQL
:
strSQL = "SELECT DISTINCT * FROM errordesc LEFT JOIN "+
"complaint ON errordesc.tran_no=complaint.tran_no "+
"WHERE errordesc.status='On-process' group by errordesc.err_id "
哦,我通过将我的报告编码成如下水晶报告解决了我自己的问题:
Dim objConn As MySqlConnection
Dim daT1, daT2 As MySqlDataAdapter
Dim activecomp As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "server=localhost;user id=root;password=;database=ticketing_system;"
objConn = New MySqlConnection(strConnection)
objConn.Open()
strSQL = "SELECT * FROM errordesc WHERE errordesc.status='On-process' group by errordesc.err_id "
daT1 = New MySqlDataAdapter(strSQL, objConn)
activecomp = New DataSet
daT1.Fill(activecomp, "errordesc")
strSQL = "SELECT * FROM complaint left join errordesc on complaint.tran_no=errordesc.tran_no group by complaint.tran_no"
daT2 = New MySqlDataAdapter(strSQL, objConn)
daT2.Fill(activecomp, "complaint")
Dim rpt As New CrystalReport1
rpt.SetDataSource(activecomp)
CrystalReportViewer1.ReportSource = rpt
objConn.Close()
您仍然需要使用加入(投诉、错误描述)要做你想做的事情,就像你之前询问投诉时一样,应该有一个错误描述的外键,该外键在所示的数据库的一小部分中似乎缺失。如图所示,似乎没有关系。我已经使用了join sir,但输出是相同的…所以你说,但你从未向我们显示SQL…他们在哪列加入?你有吗除了左连接,你知道这有什么错吗?我已经使用了左连接,但是输出是一样的。你需要提供每个表的数据样本。此外,为什么不直接针对数据库创建一个报告呢?代码中这样做是不必要的复杂。不工作,先生。输出是一样的。嗯。也许在我的数据集上是问题em或我必须先链接数据集中的两个表,然后才能在mysql中设置命令
Dim objConn As MySqlConnection
Dim daT1, daT2 As MySqlDataAdapter
Dim activecomp As DataSet
Dim strConnection As String
Dim strSQL As String
strConnection = "server=localhost;user id=root;password=;database=ticketing_system;"
objConn = New MySqlConnection(strConnection)
objConn.Open()
strSQL = "SELECT * FROM errordesc WHERE errordesc.status='On-process' group by errordesc.err_id "
daT1 = New MySqlDataAdapter(strSQL, objConn)
activecomp = New DataSet
daT1.Fill(activecomp, "errordesc")
strSQL = "SELECT * FROM complaint left join errordesc on complaint.tran_no=errordesc.tran_no group by complaint.tran_no"
daT2 = New MySqlDataAdapter(strSQL, objConn)
daT2.Fill(activecomp, "complaint")
Dim rpt As New CrystalReport1
rpt.SetDataSource(activecomp)
CrystalReportViewer1.ReportSource = rpt
objConn.Close()