需要一些帮助从查询中取回表,以备将来在我自己的数据库中使用

查理·达尔

用户

User ID Site ID Name
1   1   Arthur
2   1   Aaron
2   2   Brett

交易

Transaction ID  User ID Site ID Transaction Type     Trans Date    Amount       
4   1   1   Sale    1/1/2017    120      1/1/2017  120
6   1   1   Refund  1/7/2017    -120     1/7/2017  -120
7   2   2   Sale    1/5/2017    90       1/5/2017  90 
9   2   1   Sale    12/1/2016   30       12/1/2016  30
10  2   1   Sale    1/1/2017    30       1/1/2017   30
11  2   1   Sale    2/1/2017    30       2/1/2017   30
12  2   1   Refund  2/7/2017    -30      2/7/2017   -30

需要编写一个查询,该查询将返回一个包含以下列的表

User ID, Site ID, User Name, Total Sales, Total Refunds, Net Amount Collected

也许我需要一个内部连接函数或其他一些连接?我需要连接的另一部分来获取带有正确列的表,尝试过这个,但我认为只有一半。

with cte_sales as
(
    select
    t.[User Id],
    t.[Site Id],
    sum(t.Amount) as [Total Sales]
    from Transactions t
    where t.[Transaction Type] = 'Sale'
    group by t.[User Id],
             t.[Site Id]
),
cte_refunds as
(
    select
    t.[User Id],
    t.[Site Id],
    sum(t.Amount) as [Total Refunds]
    from Transactions t
    where t.[Transaction Type] = 'Refund'
    group by t.[User Id],
             t.[Site Id]
)

ith cte_sales as
(
    select
    t.[User Id],
    t.[Site Id],
    sum(t.Amount) as [Total Sales]
    from Transactions t
    where t.[Transaction Type] = 'Sale'
    group by t.[User Id],
             t.[Site Id]
),
cte_refunds as
(
    select
    t.[User Id],
    t.[Site Id],
    sum(t.Amount) as [Total Refunds]
    from Transactions t
    where t.[Transaction Type] = 'Refund'
    group by t.[User Id],
             t.[Site Id]
)

如果我能得到一个基于单个查询的表,其中描述的列会很棒,但目前正在刷新我的连接。

专卖店

您可以连接两个表并使用条件聚合

SELECT
    u.[User ID],
    u.[Site ID],
    u.Name as [User Name],
    SUM(CASE WHEN t.[Transaction Type] = 'Sale'   THEN t.Amount ELSE 0 END) AS [Total Sales],
    SUM(CASE WHEN t.[Transaction Type] = 'Refund' THEN t.Amount ELSE 0 END) AS [Total Refunds],
    SUM(t.Amount) AS [Net Amount Collected]
FROM Users u
INNER JOIN Transactions t
    ON t.[User ID] = u.[User ID] AND t.[Site ID] = u.[Site ID]
GROUP BY
    u.[User ID],
    u.[Site ID],
    u.Name

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我需要一些帮助来创建查询和数据库表以将数字追溯分配给现有表

我从数据库中获得一些值,动态地希望在C#中使用整数

需要遍历数据库中的所有表并在条件匹配的情况下触发一些查询

我需要一些帮助来优化查询

我在SQL Server中的查询中需要一些帮助

在Java中使用.split需要一些简单的帮助

我想使用“ PDOquery”将“添加列”添加到数据库中。但是我的查询返回了一些错误

需要一些帮助以优化查询

LINQ,检查这个字符是否包含在我的数据库中的一些表中

我需要帮助使用 XLST 遍历一些 XML 并提取数据

我们可以在Rhodes中使用javascript进行一些本地数据库(Rhom)操作吗

从数据库中获取一些指定数据的查询

使用具有大数据的 Firebase 数据库一些查询

我需要显示一些保存在房间数据库中的数据。我忘记添加什么代码或缺少什么?

我需要一个 PHP 查询来从数据库中获取数据并在我的条形图中使用以获取结果

我在哪里可以找到一些使用 struct 在 C 中创建的数据库示例?

如何在Laravel中使用Join过滤一些数据库记录

如何从SQL数据库表中获取一些特定记录

使用从数据库获得的整数,并使用它通过Linq从数据库中检索一些数据

需要帮助使用php查询数据库

如何将一些值添加到我的数据库中

在使用 php 更新数据库时,我遇到了一些问题

SQL 查询 - 需要一些查询帮助

我应该在数据库中保存哪些PayPal数据以备将来使用?

我需要一些帮助,使用 Spyder 使用 Celeb_a 数据集设置 Keras-Tuner

需要数据库查询帮助

我在引导模式中使用 jQuery 和 AJAX 从数据库中获取一些数据,但是当我尝试更新某些记录时,它给出了不正确的值

关于我的mongodb聚合查询需要一些帮助

在 Mysql 中删除/删除我的数据库需要帮助