Linq Help to Convert SQL

HI,

Can we can convert below sql query into Linq

Select Distinct internal.[Match Group],Quality_Break.[Trade Date],Quality_Break.Qty_Int,Quality_Break.Qty_Ext from Internal Inner Join Quantity_Break on (Internal.[Match Group]=Quantity_Break.[Match Group]) And (format (Internal.[Trade Date],“mm/dd/yyyy”)=Quantity_Break.[Trade Date]) where (((internal.Reason)=‘Not Allowed’));

needed output in datatable.
Any help will be appreciated

Hi @TUSHAR_DIWASE

result = (From internalRow In internalTable.AsEnumerable()
 Join quantityRow In quantityBreakTable.AsEnumerable()
 On internalRow.Field(Of String)("Match Group") Equals quantityRow.Field(Of String)("Match Group")
 And internalRow.Field(Of DateTime)("Trade Date").ToString("MM/dd/yyyy") Equals quantityRow.Field(Of DateTime)("Trade Date").ToString("MM/dd/yyyy")
 Where internalRow.Field(Of String)("Reason") = "Not Allowed"
 Select resultTable.LoadDataRow(New Object() {
     internalRow.Field(Of String)("Match Group"),
     quantityRow.Field(Of DateTime)("Trade Date"),
     quantityRow.Field(Of Double)("Qty_Int"),
     quantityRow.Field(Of Double)("Qty_Ext")
 }, False)).CopyToDataTable()

Hi @TUSHAR_DIWASE

Try this LINQ:

Dtresult = (From internalRow In InputDt.AsEnumerable() 
Join qualityBreakRow In qualityBreakTable.AsEnumerable() 
On internalRow.Field(Of String)("Match Group") Equals qualityBreakRow.Field(Of String)("Match Group") _
And internalRow.Field(Of DateTime)("Trade Date").ToString("MM/dd/yyyy") Equals qualityBreakRow.Field(Of String)("Trade Date") 
Where internalRow.Field(Of String)("Reason") = "Not Allowed" 
Select OutputDt.Clone().LoadDataRow(New Object() _
	{ internalRow.Field(Of String)("Match Group"), qualityBreakRow.Field(Of String)("Trade Date"), qualityBreakRow.Field(Of Integer)("Qty_Int"), qualityBreakRow.Field(Of Integer)("Qty_Ext") }, False)).Distinct().CopyToDataTable()

Hope it helps!!


getting error

@TUSHAR_DIWASE

Use Assign activity not invoke code

Dtresult = (From internalRow In InputDt.AsEnumerable() 
Join qualityBreakRow In qualityBreakTable.AsEnumerable() 
On internalRow.Field(Of String)("Match Group") Equals qualityBreakRow.Field(Of String)("Match Group") _
And internalRow.Field(Of DateTime)("Trade Date").ToString("MM/dd/yyyy") Equals qualityBreakRow.Field(Of String)("Trade Date") 
Where internalRow.Field(Of String)("Reason") = "Not Allowed" 
Select OutputDt.Clone().LoadDataRow(New Object() _
	{ internalRow.Field(Of String)("Match Group"), qualityBreakRow.Field(Of String)("Trade Date"), qualityBreakRow.Field(Of Integer)("Qty_Int"), qualityBreakRow.Field(Of Integer)("Qty_Ext") }, False)).Distinct().CopyToDataTable()

Hi @TUSHAR_DIWASE

Please use that syntax in Assign activity.

Regards