我有这样一张桌子:
ID Seq Amt
1 1 500
1 2 500
1 3 500
1 5 500
2 10 600
2 11 600
3 1 700
3 3 700
Run Code Online (Sandbox Code Playgroud)
我想将连续序列号分组为一行,如下所示:
ID Start End TotalAmt
1 1 3 1500
1 5 5 500
2 10 11 1200
3 1 1 700
3 3 3 700
Run Code Online (Sandbox Code Playgroud)
请帮助实现这一结果.
我有三张桌子:
产品
ProductID ProductName
1 Cycle
2 Scooter
3 Car
Run Code Online (Sandbox Code Playgroud)
顾客
CustomerID CustomerName
101 Ronald
102 Michelle
103 Armstrong
104 Schmidt
105 Peterson
Run Code Online (Sandbox Code Playgroud)
交易
TID ProductID CustomerID TranDate Amount
10001 1 101 01-Jan-11 25000.00
10002 2 101 02-Jan-11 98547.52
10003 1 102 03-Feb-11 15000.00
10004 3 102 07-Jan-11 36571.85
10005 2 105 09-Feb-11 82658.23
10006 2 104 10-Feb-11 54000.25
10007 3 103 20-Feb-11 80115.50
10008 3 104 22-Feb-11 45000.65
Run Code Online (Sandbox Code Playgroud)
我写了一个查询来对这样的事务进行分组:
SELECT P.ProductName AS Product,
C.CustName AS Customer,
SUM(T.Amount) AS Amount …Run Code Online (Sandbox Code Playgroud) 我有一个这样的测试数据库设计:

以下是伪代码:
//BhillHeader
public class BillHeader
{
public BillHeader()
{
BillDetails = new List<BillDetail>();
}
public virtual int BillNo { get; set; }
public virtual IList<BillDetail> BillDetails { get; set; }
public virtual decimal Amount { get; set; }
public virtual void AddDetail(BillDetail billdet)
{
BillDetails.Add(billdet);
}
}
//BillHeader Map
public class BillHeaderMap : ClassMap<BillHeader>
{
public BillHeaderMap()
{
Table("BillHeader");
LazyLoad();
Id(x => x.BillNo).GeneratedBy.Identity().Column("BillNo");
Map(x => x.Amount).Column("Amount").Not.Nullable();
HasMany(x => x.BillDetails).KeyColumn("BillNo").Cascade.All().Inverse();
}
}
//BillDetail
public class BillDetail
{
public BillDetail() { …Run Code Online (Sandbox Code Playgroud) 我想根据SQL Server 2005中具有不同数据类型的列的组合来创建唯一的字符串列(长度为32个字符)。
我正在使用nHibernate并尝试添加一些主从细节数据.数据库图表附在此处.

以下是添加类别和两个产品的代码:
//Category
namespace Sample.CustomerService.Domain
{
public class Category {
public Category() {
Products = new List<Product>();
}
public virtual int CategoryID { get; set; }
public virtual IList<Product> Products { get; set; }
public virtual string Name { get; set; }
public virtual string Unit { get; set; }
public virtual void AddProduct(Product product)
{
Products.Add(product);
}
}
}
//CategoryMap
namespace Sample.CustomerService.Domain
{
public class CategoryMap : ClassMap<Category> {
public CategoryMap() {
Table("Category");
LazyLoad();
Id(x => x.CategoryID).GeneratedBy.Identity().Column("CategoryID");
Map(x => …Run Code Online (Sandbox Code Playgroud) 我有一组这样的数据:
MinNo: 2500
MaxNo: 2700
IncrementStep: 10
Run Code Online (Sandbox Code Playgroud)
在最小数和最大数之间,将列出具有给定步骤的所有可能数字,如下所示:
2500
2510
2520
2530
2540
2550
2560
2570
2580
2590
2600
2610
2620
2630
2640
2650
2660
2670
2680
2690
2700
Run Code Online (Sandbox Code Playgroud)
我知道这可以使用 while 循环来实现。请告诉我是否可以使用公共表表达式的选择查询来完成此操作(如果需要)。提前致谢。
我有一个这样的股票交易表:
Item Date TxnType Qty Price
ABC 01-April-2012 IN 200 750.00
ABC 05-April-2012 OUT 100
ABC 10-April-2012 IN 50 700.00
ABC 16-April-2012 IN 75 800.00
ABC 25-April-2012 OUT 175
XYZ 02-April-2012 IN 150 350.00
XYZ 08-April-2012 OUT 120
XYZ 12-April-2012 OUT 10
XYZ 24-April-2012 IN 90 340.00
Run Code Online (Sandbox Code Playgroud)
我需要 FIFO(先进先出)中每个项目的库存价值,这意味着应该首先消耗第一个购买的项目。上述数据的产出存货估值为:
Item Qty Value
ABC 50 40000.00
XYZ 110 37600.00
Run Code Online (Sandbox Code Playgroud)
请帮助我获得解决方案。
我有15到20个标签,文本大小可变,文本框排列在表格中.文本框排列在标签旁边.表单的字体和颜色以及表单控件可以由用户在运行时配置.当我右对齐标签并将auto grow属性设置为true时,无论何时字体样式发生变化(例如从Arial到Georgia),右对齐标签都不再右对齐.
我需要一个标签上的解决方案(用于winforms),以便在字体大小改变时自动增长到左侧.
我有一个数字(比如100,000).我想在15,000和19,900的给定间隔之间分割这个数字.我预计结果将在15,000到19,900之间.我需要一个SQL查询/函数来完成这项任务.
示例:如果我需要在15,000和19,900的间隔之间拆分100,000,结果应如下所示:
15100.00
16750.00
19365.22
18254.85
15987.65
14542.28
Run Code Online (Sandbox Code Playgroud)
请注意,所有这些值的总和等于100,000,提前感谢.