小编Ion*_*Ion的帖子

选择 UNION 除了一列

我有个问题:

我想使用 UNION 将两个 SQL 查询连接到一个查询中以避免重复,但我需要知道数据是来自第一个选择查询还是来自第二个选择查询。

样本数据:

 A TABLE                                                B TABLE
-----------------------------------------------------------------------------
01 JOHN                                                01 JOHN
02 JUAN                                                02 PETER
03 MARTIN                                              03 MARTIN
Run Code Online (Sandbox Code Playgroud)

我有这样的事情:

Select A.code,A.name from A where some conditions
unión
Select B.code,B.name from B where diferent conditions
Run Code Online (Sandbox Code Playgroud)

结果表


    01 JOHN                                                
    02 JUAN  
    02 PETER
    03 MARTIN
Run Code Online (Sandbox Code Playgroud)

这工作正常,但现在如果我想知道数据是来自第一个查询还是来自第二个查询,我认为是这样的:

Select A.code,A.name, 'A'   from A where some conditions
unión
Select B.code,B.name, 'B'   from B where diferent conditions
Run Code Online (Sandbox Code Playgroud)

结果表


    01 JOHN  'A'                                              
    01 JOHN  'B'
    02 JUAN  'A'
    02 PETER 'B' …
Run Code Online (Sandbox Code Playgroud)

sql union sql-server-2008

7
推荐指数
1
解决办法
6344
查看次数

使用EPPLUS将excel行分组

我需要的是当行的值与上一行相同时对行进行分组,“ B3”的值与“ B2”相同,如下所示:

在此处输入图片说明

我在epplus中使用c#,我看到如何使用outline选项来执行与此类似的操作,并且与我想要的功能相似,但是此选项有一些缺点,例如不能自动基于分组的缺点价值观,不能做各种团体。

EPPLUS是否可以做到这一点?如果不可能,如何将VBA代码添加到C#中?

  StringBuilder vbaCode = new StringBuilder();

  vbaCode.AppendLine("Sheets('Sheet1').Activate");
  vbaCode.AppendLine("Range('A1: D11').Select");
  vbaCode.AppendLine("Selection.Subtotal GroupBy:= 1, Function:= xlSum, TotalList:= Array(2, 3),Replace:= True, PageBreaks:= False, SummaryBelowData:= True");
pck.Save();
Run Code Online (Sandbox Code Playgroud)

但不起作用,我无法打开Excel文件。

编辑

现在有了摘要,我尝试使用group函数进行Interop,但是出于一个额外的原因,他将列而不是行分组,这是代码:

 var ExApp = new Microsoft.Office.Interop.Excel.Application();
 Microsoft.Office.Interop.Excel.Workbooks Wbs = ExApp.Workbooks;
 Microsoft.Office.Interop.Excel.Workbook Wb = Wbs.Open(fi.FullName.ToString());
 Microsoft.Office.Interop.Excel.Sheets wss = Wb.Worksheets;
 Microsoft.Office.Interop.Excel.Worksheet Ws = (Microsoft.Office.Interop.Excel.Worksheet)wss.get_Item("Sheet1");
 Ws.Range["A6:A10"].Group();
 Ws.Outline.SummaryRow =Microsoft.Office.Interop.Excel.XlSummaryRow.xlSummaryAbove;
 ExApp.Visible = true;
Run Code Online (Sandbox Code Playgroud)

c# excel vba epplus

4
推荐指数
1
解决办法
4535
查看次数

使用EPPLUS从列表导出到Excel

我正在尝试使用EPPLUS将列表导出到Excel中的Excel,当我执行程序时不给我错误,但是当我打开Excel时,我看到的不是正确的数据,他把projet的名称+对象的名称与对象一样多次具有列表: 在此输入图像描述

对象的代码:

class Stock
        {
            public string Nif;
            public string Proveedor;
            public string Coodigo;
            public string descripcion;
            public string Catalogo;
            public string Estadistico;
            public decimal StockOn;

        }
Run Code Online (Sandbox Code Playgroud)

当填充thes list(lstStock)时,我创建一个Excel并使用选项loadfromcollection:

        System.IO.FileInfo f = new System.IO.FileInfo("D:\\stock_termos.xlsx");
            if (f.Exists) f.Delete();
            using (ExcelPackage ep = new ExcelPackage(f))
            {   
                ExcelWorksheet hoja = ep.Workbook.Worksheets.Add("TOTAL OBSOLETOS");
                hoja.Cells[1, 1].Value = "NIF"; ;
                hoja.Cells[1, 2].Value = "Proveedor";
                hoja.Cells[1, 3].Value = "Código";
                hoja.Cells[1, 4].Value = "Descripción";
                hoja.Cells[1, 5].Value = "Catálogo";
                hoja.Cells[1, 6].Value = "Cod.Estadístico";
                hoja.Cells[1, 7].Value = "Stock On";
                hoja.Cells[2, …
Run Code Online (Sandbox Code Playgroud)

c# excel list sql-server-2008 epplus

3
推荐指数
1
解决办法
9929
查看次数

从c#执行dbf中的查询

我在C#中做一个程序,我试图在DBF文件中执行一个查询,我认为没问题,但DataReader的HasRows属性值为false.我认为问题在于日期.这是我的代码:

 string Con = @"Provider=VFPOLEDB.1;Data Source=\\Server\ges_01";
 OleDbConnection ConnectionHandler = new OleDbConnection(Con);
ConnectionHandler.Open();

 string SQL = "SELECT codalb FROM BALBARA WHERE FECALB BETWEEN CTOD('2015/12/07') AND CTOD('2015/12/13') AND CODCLI LIKE '%9' ORDER BY CODALB"
 OleDbCommand Query = new OleDbCommand(SQL, ConnectionHandler);
 OleDbDataReader datareader = Query.ExecuteReader();
while(datareader.Read())
{}
Run Code Online (Sandbox Code Playgroud)

我知道其余的都可以,因为如果把string SQL="select codalb from balbara";工作正常.

任何人都可以说我做错了什么

c# foxpro dbf

0
推荐指数
1
解决办法
1317
查看次数

标签 统计

c# ×3

epplus ×2

excel ×2

sql-server-2008 ×2

dbf ×1

foxpro ×1

list ×1

sql ×1

union ×1

vba ×1