如何在 SQL 服务器 CE 中将 SQL select 查询更改为新的 table?

How to Change SQL select query As new table in SQL Server CE?

这是我当前的 SQL 查询:

SELECT 
    SUM(CASE WHEN (DATEDIFF(day, tbl_debit.purchasedate, GETDATE()) >= 45)
             THEN tbl_invoices.pendingamount ELSE 0 END) AS morethan45,
    SUM(CASE WHEN (DATEDIFF(day, tbl_debit.purchasedate, GETDATE()) < 45)
           THEN tbl_invoices.pendingamount ELSE 0 END) AS lessthan45
FROM 
    tbl_debit 
INNER JOIN 
    tbl_invoices ON tbl_debit.invoice = tbl_invoices.invoice  
WHERE 
    (tbl_invoices.state = - 1)

以上查询的输出如下所示:

morethan45    |    lessthan45
  750         |       710

我想创建一个新的 table,如下所示。是否可以创建如下所示的新内容

Column 1      | Column 2
morethan45    |    750
lessthan45    |    710

group by中使用case:

SELECT (CASE WHEN (DATEDIFF(day, tbl_debit.purchasedate, GETDATE()) >= 45)
             THEN 'MoreThan45'
             ELSE 'LessThan45'
        END) as Column1,
       SUM(tbl_invoices.pendingamount) as Column2
FROM tbl_debit INNER JOIN
     tbl_invoices 
     ON tbl_debit.invoice = tbl_invoices.invoice  
WHERE tbl_invoices.state = -1
GROUP BY (CASE WHEN (DATEDIFF(day, tbl_debit.purchasedate, GETDATE()) >= 45)
               THEN 'MoreThan45'
               ELSE 'LessThan45'
          END);

使用intoinsert填充一个table。

相同的查询可以稍微改变一下以获得结果。

您可以添加一个新列来定义范围并在 Group by

中使用它,而不是根据条件聚合 pendingamount
SELECT CASE
         WHEN Datediff(day, tbl_debit.purchasedate, Getdate()) >= 45 THEN 'morethan45'
         ELSE 'lessthan45'
       END                             AS [Column 1],
       Sum(tbl_invoices.pendingamount) AS [Column 2]
FROM   tbl_debit
       INNER JOIN tbl_invoices
               ON tbl_debit.invoice = tbl_invoices.invoice
WHERE  tbl_invoices.state = -1
GROUP  BY CASE
            WHEN ( Datediff(day, tbl_debit.purchasedate, Getdate()) >= 45 ) THEN 'morethan45'
            ELSE 'lessthan45'
          END