【问题标题】:How to suffice the following requirement through Query in Hana SP12如何通过 Hana SP12 中的 Query 满足以下要求
【发布时间】:2018-09-11 06:39:44
【问题描述】:

我有一个要求,我想以如下特定格式显示购物客户的数量。

         Format A   Format B    Format C
Format A    10       20          30
Format B    20       30          40
Format C    30       40          50

例如以下格式。

期望的输出:

仅以 Format A 购物的顾客数量为 10。

以格式 A 和 B 购物的顾客数量为 20。

以格式 A 和 C 购物的顾客数量为 30。

以此类推。

如何使用查询来做到这一点?

【问题讨论】:

  • 您的问题没有足够的信息。您的数据是什么样的?
  • @GordonLinoff 数据基本上是 customer_no 明智的格式代码,客户可以以多种格式购物。我们必须找到以多种格式访问的客户数量。就像我在评论中提到的那样。数据集可以是 select distinct customer_no,format from customers_table;

标签: sql sap hana


【解决方案1】:

没有足够的信息来清楚地了解您的要求,但我假设您的数据如下所示:

TXT      | Format A |Format B  | Format C
----------------------------------------
Format A | 10       | 20       | 30
Format B | 20       | 30       | 40
Format C | 30       | 40       | 50

现在,如果您想旋转该表以显示每个组合的值而不重复,您可以使用如下逻辑:

SELECT
    'A' || CASE WHEN RIGHT("TXT",1) = 'A' THEN '' ELSE RIGHT("TXT",1) END  AS "FORMAT" ,
    "Format A" AS "OUTPUT"
FROM
    "YOUR_TABLE"

    UNION

SELECT
    'B' || CASE WHEN RIGHT("TXT",1) = 'B' THEN '' ELSE RIGHT("TXT",1) END,
    "Format B" AS "OUTPUT"
FROM
    "YOUR_TABLE"                 
WHERE
    "TXT" != 'Format A'

    UNION

SELECT
    'C' || CASE WHEN RIGHT("TXT",1) = 'C' THEN '' ELSE RIGHT("TXT",1) END,
    "Format C" AS "OUTPUT"
FROM
    "YOUR_TABLE"
WHERE
    "TXT" NOT IN ('Format A',   'Format B')
;

输出如下:

FORMAT  | OUTPUT
A       | 10
AB      | 20
AC      | 30
B       | 30
BC      | 40
C       | 50

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-26
    • 2020-09-08
    • 2022-11-03
    • 2014-08-17
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    相关资源
    最近更新 更多