使用sybase中的循环在同一列中添加两个不同的项目

时间:2015-08-10 08:23:23

标签: sql sybase

假设有不同的公司在其工作中使用不同的货币,TCS使用美元和英镑。现在我们有这样的列

Company   Amount      Currency
TCS-      200          USD
Infosys   50           USD
TCS       100          USD
TCS       50           GBP
INFOSYS   100          GBP
TCS       100          GBP

现在我需要一个带有结果列的查询,它将添加这些公司的总数并显示如下:

Company   Total Amount
TCS      300USD+150GBP
Infosys  100USD+100GBP

应该是这样,我们制作两个局部变量。在一个我们添加一个货币的值,在另一个我们添加两个货币(usd,gbp)变量的值变量,即usd将检查该值是否以美元为单位,然后它将添加到以前的美元值。类似地,gbp将添加类型GBP的值,即(200 + 100)USD和(100 + 50)GBP。现在我们连接这些变量并添加第三个变量(300USD + 150GBP)。现在,第三个变量将显示为总列中的结果。

1 个答案:

答案 0 :(得分:0)

您希望每家公司都有一行,因此您可以按公司分组。但在这些行中,您希望显示每个公司和货币的汇总数据。这是另一个分组,所以它实际上是你必须采取的两个步骤。

第一步很简单,获得每家公司和货币的总和:

<form action="register.php" method="POST">
    First Name: <input type="text" name="namer"  placeholder="First Name"/> <br>
    Last Name: <input type='text' name='laz' /> <br>
    Email Address: <input type='text' name='emaila' /> <br>
    UserName: <input type='text' name='usrn' />
    Password: <input type='password' name='passw' />
    <input type='submit' id='button' value='Submit' name='login' />

</form>

现在,如何将这些总数连接成一个字符串? Sybase为此提供聚合函数LIST(请参阅此处:http://infocenter.sybase.com/help/...)。因此:

select company, currency, sum(amount)
from mytable
group by company, currency;