2015-01-07 252 views
0

我不知道这是否是正确的问题。在同一表中选择多个列

我有一个表有两个字段,信用卡和借记卡。 我做了每个字段的总和,然后用总余额创建一个新列。 我创建了一个做工精良分别 这是几个查询:

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
Sum(libromayor.haber) AS GastosGlobal,   
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalGlobal 
FROM libromayor 

这:

SELECT Sum(libromayor.debe) AS IngresosActual, 
Sum(libromayor.haber) AS GastosActual, 
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalActual 
FROM libromayor 
WHERE Year(libromayor.fechaevento) = Year(CurDate()) 

我想什么是团结两个查询,但在离开的结果在这种情况下6列,而不是3作为此查询的尝试:

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
Sum(libromayor.haber) AS GastosGlobal,   
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalGlobal 
FROM libromayor 
UNION 
SELECT Sum(libromayor.debe) AS IngresosActual, 
Sum(libromayor.haber) AS GastosActual, 
(Sum(libromayor.debe) - Sum(libromayor.haber)) AS TotalActual 
FROM libromayor 
WHERE Year(libromayor.fechaevento) = Year(CurDate()) 

给出的结果是这样的:

IngresosGlobal GastosGlobal TotalGlobal 
1521.00   1575.00  -54.00 
121.00    100.00   21.00 

,但我想创建使这个结果

IngresosGlobal GastosGlobal TotalGlobal  IngresosActual  GastosActual  TotalActual 
1521.00   1575.00  -54.00   121.00    100.00   21.00 
+1

http://stackoverflow.com/questions/26786079/mysql-parallel-merge-two-unrelated-queries-with-same-of-rows –

+0

如果你喜欢,考虑遵循以下简单的两步操作步骤:1.如果您尚未这样做,请提供适当的DDL(和/或sqlfiddle),以便我们可以更轻松地复制问题。 2.如果您还没有这样做,请提供与步骤1中提供的信息相对应的所需结果集。 – Strawberry

回答

1

你可以做这样一个观点:

SELECT Sum(libromayor.debe) AS IngresosGlobal, 
sum(IF(ear(libromayor.fechaevento) = Year(CurDate()), libromayor.debe, 0)) AS IngresosGlobal2 
FROM libromayor 

附:只显示一列,给你想法

+0

感谢您的意见@Urill查询最终是这样的: – Jose

相关问题