我有一个多表连接(示例中只显示了两个),我需要保留基表中的所有行.显然,我使用LEFT JOIN来包含基表上的所有行.如果没有WHERE子句,它可以很好地工作 - 当Right表中不存在行时,Left表中的行仍然显示,而右表中的列只有0.数据集中的前两行是左表中的标签和右表中的行数,按标签分组.当标签没有分配Table2的值时,我想要的只是0.
表格1
Label | FK
----------
Blue  | 1
Red   | 2
Green | 3
Run Code Online (Sandbox Code Playgroud)
表2
Values | Color | Date
---------------------------
Dog    | 1     | 02/02/2010
Cat    | 2     | 02/02/2010
Dog    | 1     | 02/02/2010
Cat    | 2     | 02/02/2010
Run Code Online (Sandbox Code Playgroud)
查询:
SELECT 1.Label, COUNT(2.values)
FROM Table1 1
    LEFT JOIN Table2 2 ON 1.fk = 1.pk
GROUP BY 1.Label
Run Code Online (Sandbox Code Playgroud)
结果集良好 - 没有过滤器
Blue  | 2
Red   | 2
Green | 0
Run Code Online (Sandbox Code Playgroud)
大!
我的问题是,当我添加过滤条件以从右表中删除行时,我的左连接行将其删除(将它们清零),删除左行.即使他们的计数被过滤到零,我也需要保留左行.
SELECT 1.Label, …Run Code Online (Sandbox Code Playgroud) 如何对数据表进行排序?我需要从函数返回一个数据表.我一直在努力奋斗这几个小时,互联网有几个不同的答案,其中没有一个似乎对我有用.
编辑:我想打自己.在表上执行DataView.Sort,然后使用DataView.ToTable()将已排序的数据放入新数据集中...示例:
Dim view As New DataView(OriginalDataSet) 'Put your original dataset into a dataview
view.Sort = "ColumnName" ' Sort your data view
Dim NewDataSet As DataTable = view.ToTable() ' Put your dataview into a new datatable
Run Code Online (Sandbox Code Playgroud)
示例结束
我有一个相对简单的示例表,取自教学网站.一个转折是在我尝试排序的行中有重复的值.
Module Module1
    Sub Main()
    ' Get a DataTable instance from helper function.
    Dim table As DataTable = GetTable()
    End Sub
    ''' <summary>
    ''' Helper function that creates new DataTable.
    ''' </summary>
    Function GetTable() As DataTable
    ' Create new DataTable instance.
    Dim table …Run Code Online (Sandbox Code Playgroud) 为什么Math.Round(0.125,2)舍入到0.12?
Dim foo As Decimal
foo = Math.Round(0.125, 2)
Run Code Online (Sandbox Code Playgroud)
foo现在是0.12但它应该是0.13
我听说这是因为.Net中的某些标准是最接近的偶数,但这只是糟糕的数学.12.5将向下舍入到12,但13.5将向上舍入到14.有没有办法解决这个问题?
我有一个datatable列有一些重复的值,我想将这些值添加到一个listbox但没有重复
我尝试了以下内容
Dim a = From row In table.AsEnumerable.Distinct.ToList Select row.Field(Of String)("name")
Run Code Online (Sandbox Code Playgroud)
但它给了我重复的值,如何在没有重复的情况下完成?
好吧,我几天来一直在反对这个问题,在学习LINQ后我觉得我走在了正确的轨道上.但我有一个SQL大脑,有时很难转换为C#.
我有两个数组,一个按字母顺序排序,另一个按ID排序.我需要按字母顺序排序第二个数组.ID是加入因子.IEAID = P.ID.
这是我的数组和示例值;
private IGenericListItem[] _priceLevels = new IGenericListItem[0];
_priceLevels is in the form of {ID, Name}
{3, A}
{8, B}
{4, C}
{7, D}
{5, E}
{9, F}
{1, G}
Run Code Online (Sandbox Code Playgroud)
编辑:更新此以显示_assignmentControls包含一个子数组.我没有为疯狂做这样的借口.它实际上包含_priceLevels的副本...
protected ArrayList _assignmentControls = new ArrayList();
_assignmentControls is in the form of {ID, LastPrice, NewPrice, _priceLevels[]}
{1, 1.00, 2.00, _priceLevels}
{2, 1.00, 2.00, _priceLevels}
{3, 1.00, 2.00, _priceLevels}
{4, 1.00, 2.00, _priceLevels}
Run Code Online (Sandbox Code Playgroud)
部分问题在于我正在尝试比较/加入ArrayList和IGenericListItem.
In SQL I would do something like this;
SELECT A.* 
FROM _assignmentControls …Run Code Online (Sandbox Code Playgroud) 我无法将我的日期格式化为yyyy-MM-dd,例如2013-01/15.我尝试过自定义和预定义的日期/时间格式.任何这些应该工作:
    Dim myDate As Date = "01/15/2013"
    myDate = myDate.ToString("o")
    myDate = myDate.ToString("yyyy-MM-dd")
    Format(myDate, "yyyy-MM-dd")
Run Code Online (Sandbox Code Playgroud)
但他们都将myDate保持为"01/15/2013".我究竟做错了什么?
我想使用 PHP 在 XML 文件中添加一个元素节点。当我将其添加到根目录下时,我无法得到正确的结果。请向我展示一些干净的代码,以便我了解它是如何工作的。谢谢你!我的 XML 是
<?xml version="1.0" encoding="utf-8"?>
<GameStore>
    <Game type="adventure">
    <TITLE>Assassin's Creed: Brotherhood</TITLE>
    <PUBLISHER>Ubisoft</PUBLISHER>
    </Game> 
    <Game type="adventure">
    <TITLE>Batman: Arkham Asylum</TITLE>
    <PUBLISHER>Eidos</PUBLISHER>
    </Game>
    </GameStore>
Run Code Online (Sandbox Code Playgroud)