【问题标题】:How to compose this SQL Server query?如何编写此 SQL Server 查询?
【发布时间】:2013-02-01 09:39:59
【问题描述】:

我学习了一些 SQL,但我忘记了一切,现在我正在尝试做这个数据库架构:

我想减去 (all INGRESADO - all CANTIDAD) 并返回一个唯一值,如下所示:

SELECT SUM(ingresado) - SUM(cantidad) FROM Nomina, Gasto;

但我认为,它并没有返回我想要的真正价值......

谢谢!

编辑:

DECLARE @nomina FLOAT;
DECLARE @gasto FLOAT;
SELECT @nomina = SUM(ingresado) FROM Nomina;
SELECT @gasto = SUM(cantidad) FROM Gasto;
SELECT @nomina - @gasto;

这会返回我想要的值,但我希望它在一个唯一的查询中,谢谢。

【问题讨论】:

  • 两张表有什么关系?我无法从上面的字段名称中分辨出来。
  • 我不需要关联那些表所以...我觉得这样就可以了,我想让这个应用程序变得如此简单以便以后必须改进,这是我个人的目的我想稍后对其进行编辑,并且可能会关联它并添加新表格等...

标签: sql sql-server vba dataset


【解决方案1】:
SELECT ( SELECT SUM(ingresado) FROM Nomina ) - ( SELECT SUM(cantidad) FROM Gasto ) as Delta

【讨论】:

    【解决方案2】:

    试试这个:

    SELECT(SELECT SUM(ingresado) FROM Nomina - SELECT SUM(cantidad) FROM Gasto)
    

    【讨论】:

    • 这是正确的,但应该是SELECT ((SELECT SUM(ingresado) FROM Nomina) - (SELECT SUM(cantidad) FROM Gasto));Thanks =)
    【解决方案3】:
    Select (SELECT SUM(ingresado) from Nomina) - (select SUM(cantidad)) FROM Gasto);
    

    检查这个:How to SUM and SUBTRACT using SQL?

    【讨论】:

    • 这里你有交叉(笛卡尔)连接,原因是错误的结果。
    【解决方案4】:

    如果您没有关联 2 个表,而只想减去 2 个总和,那么这应该可以:

    SELECT (SELECT SUM(ingresado) 
       FROM Nomina) - 
       (SELECT SUM(cantidad)
       FROM Gasto)
    

    【讨论】:

      【解决方案5】:

      我认为您想执行两个单独的查询,然后在代码中执行减法运算。喜欢:

      SELECT SUM(ingresado) FROM Nomina;
      SELECT SUM(cantidad) FROM Gasto;
      

      然后你在你的代码中做减法。

      我确信也可以通过使用一些嵌套查询直接在 SQL 内部进行减法,但这只是麻烦而没有优势。

      【讨论】:

      • 是的,我知道那个解决方案,但我只需要在一个查询中,因为我使用的是类型化数据集(我不知道是否正确输入)所以我通过 Visual Studio 进行设置,以减少代码和清洁我的应用程序和 mvc 方式。
      猜你喜欢
      • 2015-08-14
      • 2012-02-29
      • 1970-01-01
      • 2021-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多