在SQL中显示三个不同表中的三个不同列

时间:2019-06-21 14:30:07

标签: sql sql-server group-by nested-queries dbvisualizer

我试图在SQL中显示来自同一数据库的三个不同列,但每个列均来自不同的表。一个叫做“名称”,我也希望将其输出分组;另一列是“ Money”两列之间的计算,第三列是“日期”。 NameId是连接Name和Money列的内容,MoneyId将Money和Date连接起来

我正在dbVisualizer上创建它,这三列是同一数据库内不同表的所有部分。如何在按“名称”列分组的同时显示带有正确日期的计算出的货币库伦

我知道这是不正确的,但这是我到目前为止所掌握的。我该如何进行货币计算,而不必将其属性按功能分组,以便运行。

android.R.attr.colorActivatedHighlight

我想在显示屏上看到它。我是SQL新手,所以非常感谢所有帮助。

fun Context.themeColor(@AttrRes attrRes: Int): Int {
    val typedValue = TypedValue()
    theme.resolveAttribute (attrRes, typedValue, true)
    return typedValue.data
}

相反,我看到了

themeColor(android.R.attr.colorActivatedHighlight)

我希望将钱按每个名称,在每个日期进行分组,但是每个名称每个月都有一个以上的已付款/已发送

1 个答案:

答案 0 :(得分:0)

我相信这能为您提供所需的东西-交叉申请有点奇怪,但它很方便:)如果您想了解更多有关该信息,那么Google可以为您提供很多帮助!

Select
    A.Name
    ,b.[Paid]
    ,b.[Sent]
    ,min(C.DateId) [Date_Id]
    ,(CAST(b.paid As decimal(5,0))/CAST(nullif(b.[sent], 0) as decimal(5,0))) * 100 [Money]
From
    a
    cross apply (
        select
            max(billspaid) [Paid]
            ,max(billssent) [Sent]
        from
            B
        where
            A.NameId = B.NameId
    ) b
    inner join C
        on B.MoneyId = C.MoneyId
group by
    A.Name
    ,b.[Paid]
    ,b.[Sent]

编辑

Select
    a.Name
    ,b.[Paid]
    ,b.[Sent]
    ,min(C.DateId) [Date_Id]
    ,(CAST(b.paid As decimal(5,0))/CAST(nullif(b.[sent], 0) as decimal(5,0))) * 100 [Money]
From
    a
    cross apply (
        select
            max(billspaid) [Paid]
            ,max(billssent) [Sent]
        from
            B
        where
            A.NameId = B.NameId
    ) b
    inner join b b1
        on a.nameid = b1.nameid
    inner join c
        on b1.MoneyId = c.MoneyId
group by
    a.Name
    ,b.[Paid]
    ,b.[Sent]