小编Wes*_*ley的帖子

带有WHERE子句的LEFT OUTER JOIN

我有两张桌子.indRailType包含与我在其他表中使用的ID值配对的名称列表,以指示导轨类型.WO_BreakerRail包含日期列和轨道代码列,对应于相同的代码indRailType和其他一些数据.WO_BreakerRail对于每个日期,每种铁路类型的任何活动都有一排.所以我可以有3行日期3/19/2010,每行表示不同的轨道代码,以及发生了什么.

当我使用以下内容时LEFT OUTER JOIN,我得到一个包含所有类型轨道的表,在19行中没有任何事情发生的行中有空值.现在,这只是起作用,因为我现在只有一个日期表示在我的WO_BreakerRail表中,即19日.当我添加更多具有不同日期的行时,事情会变得混乱.

这是我的SQL语句,它现在给出了我想要的结果:

SELECT WO_BreakerRail.ID, indRailType.RailType, WO_BreakerRail.CreatedPieces, 
    WO_BreakerRail.OutsideSource, WO_BreakerRail.Charged, 
    WO_BreakerRail.Rejected, WO_BreakerRail.RejectedToCrop
FROM indRailType
LEFT OUTER JOIN WO_BreakerRail 
    ON indRailType.RailCode = WO_BreakerRail.RailCode
Run Code Online (Sandbox Code Playgroud)

现在,当我添加一个WHERE WO_BreakerRail.Date = @Date子句时,我会丢失所有JOIN没有发生的行.我不希望这样.从阅读起,听起来像是OUTER JOIN我想要的全部,但SQL Server Compact Edition不支持FULL OUTER JOINs.有没有办法解决这个问题,还是我正在寻找其他的东西?

sql-server join sql-server-ce

21
推荐指数
3
解决办法
8万
查看次数

在LEFT OUTER JOIN中替换返回的空值

SELECT        WO_BreakerRail.ID, indRailType.RailType, indRailType.RailCode, WO_BreakerRail.CreatedPieces, WO_BreakerRail.OutsideSource, WO_BreakerRail.Charged, WO_BreakerRail.Rejected, WO_BreakerRail.RejectedToCrop, WO_BreakerRail.Date
FROM            indRailType LEFT OUTER JOIN
                         WO_BreakerRail ON indRailType.RailCode = WO_BreakerRail.RailCode AND WO_BreakerRail.Date = @date
Run Code Online (Sandbox Code Playgroud)

返回时,Date列中有NULL值,其中没有来自WO_BreakerRail的匹配行.有没有办法用@date替换那些NULL值?

sql null join outer-join

6
推荐指数
1
解决办法
6359
查看次数

使用Interop C#保存Excel电子表格

static void Main()
{
  Application excelapp = new Application();
  Workbook book = excelapp.Workbooks.Open(@"C:\HWYFAB.xlsx",
    0, false, 5, "", "", false, XlPlatform.xlWindows , "",
    true, false, 0, true, false, false);

  Worksheet sheet = (Worksheet)book.Sheets[1];

  Range cell = (Range)sheet.Cells[3, 2];
  Console.WriteLine(cell.Text);
  cell.ClearContents();
  book.Close(true, "HWYFAB.xlsx", false);
  excelapp.Quit();
}
Run Code Online (Sandbox Code Playgroud)

该程序按预期运行和退出.它会将单元格B3中的正确值打印到控制台.关闭它时询问我是否要替换现有文件.我点击是.当我在Excel中打开电子表格时,尽管有cell.ClearContents(),但该值仍然在单元格B3中.

有什么想法吗?

c# excel interop

6
推荐指数
1
解决办法
2848
查看次数

多"列"DataGridView C#

我有一个绑定到DataSet的DataGridView.它有DateCreated,Weight,DateUsed列.这三列不占用几乎全屏的DataGridView上的水平空间.如果视图足够宽以支持第二组这些列,是否可以将这些列回绕到顶部.因此,在标题中,它将显示DateCreated,Weight,DateUsed,DateCreated,Weight,DateUsed.然后,当单击一行时,只会突出显示3个单元格,而不是全部六个单元格.有什么东西可以提供这种功能吗?

.net datagridview winforms

5
推荐指数
1
解决办法
1808
查看次数

Excel,仅为顶部/底部X%值提供数据标签

我有一个简单的折线图,我已经添加了数据标签:

图表

但我不想要所有这些标签.我只希望显示顶部和底部10%(任意数字)值.例如,在图片中我只想要显示51,54,57,61,66,68,74的标签.我可以手动删除其他标签,但图表数据会随时间动态变化.有没有办法实现这个目标?这些标签中的文本现在是一个占位符,最终将长达6-10个字符,此时所有这些标签将完全混乱.

我对VBA并不是很自信,所以我只想依靠它作为最后的手段.

编辑:感谢Scott的深刻回答.它与手动填充的数据标签列完美配合.但是,如果想要动态填充它,就需要一些陪审团操纵.我使用以下公式填充它:

=IF(OR(O1=LARGE($O$1:$O$30,1),O1=LARGE($O$1:$O$30,2),O1=LARGE($O$1:$O$30,3)),O1,"")
Run Code Online (Sandbox Code Playgroud)

基本上,如果O中的值是列表中的第1个,第2个或第3个值,它会将单元格值从列O复制到列P. 如果它不是任何一个,它将单元格留空.但即使单元格在视觉上是空白的,如果单元格中有公式,Excel的图表功能会将值解释为0.这意味着图表的整个底部都有重复的数据标签"0%".为了解决这个问题,我将FALSE参数的值设置为负数,然后将图表上的最小值从自动更改为0.这会将不合适的值保留在图表底部之下,超出可见范围.

excel charts

2
推荐指数
1
解决办法
1万
查看次数