如何从SQL Server查询数据?

2023-11-27

我在从数据库查询数据以在 VB.NET 中制作报告时遇到问题。我使用业务对象来制作报告。这是我的示例数据:

___________________________________________________________________________
|    |               |          |             |           |               |
| Id |   Item        |   Unit   |  Unit Price |  Quantity |     Amount    |
|____|_______________|__________|_____________|___________|_______________|
|  1 |   Gasoline    |     L    |    $ 2.00   |     10    |   $ 20.00     |
|  1 |   Gasoline    |     L    |    $ 2.50   |     20    |   $ 50.00     |
|  2 |   Water       |  Bottle  |    $ 5.00   |     10    |   $ 50.00     |
|  3 |   Meat        |     Kg   |    $ 14.90  |     15    |   $ 223.50    |
|  1 |   Gasoline    |     L    |    $ 8.00   |     50    |   $ 400.00    |
|  4 |   Milk        |    Can   |    $ 7.45   |     30    |   $ 223.50    |
|  1 |   Gasoline    |     L    |    $ 6.99   |     10    |   $ 69.90     |
|____|_______________|__________|_____________|___________|_______________|

在报告中,我想查看“Id”,“Item”,“Unit”,“Unit Price”(是的,如果它们具有不同的值,我将显示“Undefined”),“Quantity”(总和)相同项目的总和)和“金额”(相同项目的总和)。但我尝试了几次,结果都是错误的。如果所有相同商品的“单价”完全不同,如何计算“金额”。这是我的预期结果:

___________________________________________________________________________
|    |               |          |             |           |               |
| Id |   Item        |   Unit   |  Unit Price |  Quantity |     Amount    |
|____|_______________|__________|_____________|___________|_______________|
|  1 |   Gasoline    |     L    |  Undefined  |     90    |   $ 539.90    |
|  2 |   Water       |  Bottle  |    $ 5.00   |     10    |   $ 50.00     |
|  3 |   Meat        |     Kg   |    $ 14.90  |     15    |   $ 223.50    |
|  4 |   Milk        |    Can   |    $ 7.45   |     30    |   $ 223.50    |
|____|_______________|__________|_____________|___________|_______________|

请帮我....


如果我理解正确的话,这应该做你想要的:

SELECT  A.Id, 
        A.Item, 
        A.Unit, 
        CASE WHEN B.Id IS NOT NULL THEN 'Undefined' ELSE [Unit Price] END [Unit Price],
        A.Quantity,
        A.Amount
FROM (  SELECT  Id, Item, Unit,
                CAST(MIN([Unit Price]) AS VARCHAR(20)) [Unit Price], 
                SUM(Quantity) Quantity, SUM(Amount) Amount
        FROM YourTable
        GROUP BY Id, Item, Unit) A
LEFT JOIN ( SELECT Id
            FROM YourTable
            GROUP BY Id
            HAVING COUNT(DISTINCT [Unit Price]) > 1) B
    ON A.Id = B.Id

添加了一个sql小提琴供您尝试。 (归功于@bonCodigo,因为我的小提琴是基于他已有的小提琴,但使用的是我的代码)。

这是结果:

ID  ITEM        UNIT        PRICE       QUANTITY    AMOUNT
1   Gasoline    L           Undefined   90          539.9
2   Water       Bottle      5.00        20          99.9
3   Meat        Kg          14.90       15          223.5
4   Milk        Can         7.45        30          223.5
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从SQL Server查询数据? 的相关文章

随机推荐

  • Spring Hibernate Template 执行方法为 Oracle 上的计数查询返回什么对象类型?

    当针对 Oracle 数据库运行时 以下对象的运行时类型是什么春季休眠模板 Spring 2 5 和 Hibernate 3 3 2GA 代码返回其中 SQL 查询是一个计数查询 例如select count from table Stri
  • SQL 中的常量和包含文件

    是否可以在 TSQL 存储过程中包含一组 常量 值 我遇到一种情况 我使用整数字段来存储位值 并且我有一小组 常量 值 用于针对该字段插入 选择 DECLARE CostsCalculated int 32 DECLARE Aggregat
  • 使用 Mysql 检索最后插入的 id

    再会 我愿意检索 Mysql 中新插入的行的 id 值 我知道有 mysqli insert id 函数 但是 我无法指定表格 如果同时进行查询 可能会存在检索到错误 id 的风险 我正在使用 Node js MySQL 我不想冒险查询最高
  • 从 applicationContext.xml 读取环境变量

    我需要读取 web xml 中定义的环境变量
  • 静态方法中的局部变量也是静态的吗?

    我想知道如果我们在静态方法中声明它们 所有局部变量都会变成静态吗 例如 public static void A int x 3 2 changeX x for int i 0 i lt x length i System out prin
  • 如何在 Sympy 中进行函数组合?

    我想做类似的事情h f g x 并能够对 h 进行微分 例如h diff x 仅针对一个功能 例如h cos x 这实际上是可能的 并且文档说得很清楚 但对于函数组合则不太清楚 如果您已经这样做了 请向我展示一个示例或将我链接到相关文档 如
  • Guice 在 UI 线程之外创建 Swing 组件有问题吗?

    我正在使用 Google Guice 作为 IOC 容器开发 Java Swing 应用程序 一切进展顺利 存在一些用户界面问题 当标准 L F 替换为推送像素时 由于 Guice 的 Swing 组件在 UI 线程之外创建 因此 Subs
  • 何时使用socket.io以及何时使用ajax

    我一直在nodejs 中编程 研究了如何使用socket io 和ajax 调用节点服务器 socket io 是为了取代 ajax 而设计的吗 我很想知道在哪些情况下使用 socket io 比较好 哪些 ajax 更好 感谢您的意见 嗯
  • 没有可用的事务性 EntityManager

    我是 jpa 和 spring 世界的新手 目前正在对一个简单的方法进行一些单元测试 但仅当我在单元测试模式下运行测试类时才会收到此错误消息 java lang IllegalStateException No transactional
  • 如何使用poi在java中读取excel(.xlsx)?

    我正在尝试用java读取excel 我有以下代码 import java io FileInputStream import java io IOException import java io InputStream import jav
  • PHP 中的 MACTripleDES

    我正在尝试获得与 C 等效的 MAC TripleDESMACTripleDES class 我尝试过以下mcrypt 但这只是 TripleDES 中的编码 我需要获取与 C 中生成的字符串等效的 MACTripleDES 字符串来验证消
  • Google OAuth 2 授权 - 将代码交换为令牌

    我正在尝试实施 Google OAuth 2 以访问 Google API 我跟随this指南 使用服务器端场景 我获取代码没有问题 服务器重定向到 localhost 这是目前重定向 URI 中允许的唯一服务器 为了实现这一目标 我去ht
  • 如何使用Tkinter模仿这个表?

    如何开始使用 Tkinter 创建类似的表 使用 Ttk TkinterTreeview小部件 这提供了一个树型布局或listview带有标题布局的样式列 As the Treeview小部件来自 Tk 的主题图标集 它在 Windows
  • 在prepareForSegue方法中防止segue?

    是否可以取消segueprepareForSegue method 我想在转场之前执行一些检查 如果条件不成立 在这种情况下 如果某些UITextField为空 显示错误消息而不是执行 segue 在 iOS 6 及更高版本中这是可能的 你
  • 用于 mysql 的开源 ER 图表工具 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想对我拥有的数据库的数据库定义转储进行逆向工程 导入到图表形式 然后由于在这个特定数据库中没有定义外键 我希望能够手动创建表到表键映射 使用 cr
  • 将动态 JSON 对象传递到 Web API - Newtonsoft 示例

    我需要将动态 JSON 对象传递到我的 Web API 控制器 以便我可以根据它的类型对其进行处理 我尝试过使用 JSON NET 示例可以在这里看到但是当我使用Fiddler时 我可以看到传入的JObect始终为空 这是粘贴到 Fiddl
  • 来自嵌套字典的 Pandas 数据框

    我的字典看起来像这样 x b 10 c 20 y b 33 c 44 我想获得一个如下所示的数据框 index col1 col2 val 0 x b 10 1 x c 20 2 y b 33 3 y c 44 我尝试调用 pandas f
  • 以编程方式设置时 UITextView selectedRange 不显示

    我的问题是以编程方式设置 UITextView 的 selectedRangeselects文字 但是does not直观地表明它已被选中 这听起来像是 OS 3 0 3 1 中的错误吗 更重要的是 有什么解决方案或建议可以显示选择 示例项
  • 单击按钮后使用 Selenium 切换到新窗口

    我正在开发一个非常简单的网页项目 但遇到了一些困难 我正在使用一个网站 填写表格并单击按钮后 我会在新窗口中打开 XML 文档 从而获得所需的数据 但是 我不知道如何访问它 因为没有给出窗口名称 browser Browser firefo
  • 如何从SQL Server查询数据?

    我在从数据库查询数据以在 VB NET 中制作报告时遇到问题 我使用业务对象来制作报告 这是我的示例数据 Id Item Unit Unit Price Quantity Amount