我在HANA工作室有一个表,其中包含5列:
item
value
cost
Margin
ABC_cat
如何Margin Categorization
使用if-else条件生成第6列?
IF ((([Margin])/[VALUE])*100<((SUM([VALUE])-SUM([COST]))/SUM([VALUE]))*100)
THEN ('BELOW')
ELSE ('ABOVE')
Run Code Online (Sandbox Code Playgroud) 我想在sap-hana db中查询系统表以提取有关外键的信息.有'Indexes'和'Index_columns'系统表,但我只看到'Constraint'列包含'Primary key'和'?' 值,但不是外键值.对此有任何帮助表示高度赞赏.
请给我一个建议,将下面的MSSQL VIEW转换为HANA VIEW
CREATE VIEW [dbo].[ViewSample]
AS
SELECT [column1] + ' / ' + [cloumn2] AS CollectionLabel
FROM [dbo].[T1] T1
CROSS JOIN [dbo].[T2] T2
Run Code Online (Sandbox Code Playgroud)
提前致谢
当我在代码中创建模型时,我通常使用:
var oData = {
"name" : "",
"description" : "",
"phone" : ""
};
var oModel = new JSONModel(oData);
this.setModel(oModel, "data");
Run Code Online (Sandbox Code Playgroud)
之后,我可以使用以下方法访问模型及其值:
var oModel = this.getView().getModel("data");
var description = oModel.getProperty("/description");
Run Code Online (Sandbox Code Playgroud)
但是,这是使用内部json结构.当我从Hana平台使用oData目标或在我的SAPUI5项目上使用模拟服务器时,如何获得oModel结构?
unix 时间戳值通过 MySQL DB 的数据服务传入 HANA。
不过,我可以使用以下语句找到日期,但想知道 SAP HANA 或数据服务设计器中是否有任何内置函数可以完成这项工作?还有什么方法可以从结果中获取时间,就像我们有 TO_DATE 的日期而不是 RIGHT( ) 一样?
SELECT TO_VARCHAR (ADD_SECONDS( '1970-01-01 00:00:00', "1452261405"))
它将返回 2016-01-08 13:56:45
我有一个现有的HANA仓库,该仓库没有创建/更新时间戳。我需要生成许多夜间批处理增量文件,以发送到另一个平台。我的问题是如何检测哪些记录是新记录或已更改记录,以便可以在复制过程中捕获这些记录。
有没有办法使用HANA的内置功能来检测新记录/更改记录?
我试图了解从 curs.description 返回的元组中的每个字段,以便我可以知道类型是什么以及该类型的参数。
请参阅下面的代码示例。我基本上会运行一些查询,然后打印或操作游标描述(这是一个元组)。数据是什么意思(我知道其中一个字段是列名称)?我想了解所有这些字段的含义,以便我可以根据需要解析任何类型信息。
例如,这是一个 SAP HANA 查询
select *
from "_NAMESPACE"."SomeTable"
Run Code Online (Sandbox Code Playgroud)
我从 python 运行
conn01 = pyhdb.connect(host='', port=, user='', password = '')
curs02 = conn01.cursor()
curs02.execute(myQuery)
curs02.fetchone()
print(curs02.description) # prints tuple
Run Code Online (Sandbox Code Playgroud)
返回(例如):
(('FROM_SITE', 11, 无, 1, 0, 无, 2), ('TO_SITE', 11, 无, 1, 0, 无, 2), ('FROM', 11, 无, 4, 0,无, 0), ('TO', 11, 无, 4, 0, 无, 0), ('TRX', 11, 无, 2, 0, 无, 0), ('ACCNUM', 11, 无, 8, 0, 无, 0), ('DESC', 11, 无, 20, 0, 无, …
我在 ABAP 中使用 ADBC 创建了一个临时表,并用所需的数据填充它们,而不是使用内部表,因为我们正在为报告处理大量数据导致性能问题。处理后我总是删除我创建的临时表。我的问题是,如果我们经常使用这种方法,服务器会不会有什么问题?
比如当 100 名员工使用同时处理 350,000 多条记录的程序时,这对服务器是否不利?请赐教。
提前致谢!
编辑:
记录将显示在 ALV 中
代码如下: tmp_table是临时表名 的变量autoid是序列名的变量
sql->execute_ddl( |CREATE SEQUENCE { autoid } | &&
|START WITH 00001 | &&
|INCREMENT BY 1 | ).
crte_txt = | CREATE TABLE { tmp_table } | &&
|( bid bigint NOT NULL , | &&
| contract char(50) , | &&
| swenr char(50), | &&
| smenr CHAR(8), | &&
| saltnr char(20), | &&
| bp …
Run Code Online (Sandbox Code Playgroud) I'm coming from a Teradata environment where
create table mytable
(
first_column varchar(50),
second_column varchar(50),
third_column varchar(50)
)
insert into mytable values (first_column = 'one', second_column = 'first')
insert into mytable values (first_column = 'two', third_column = 'second')
Run Code Online (Sandbox Code Playgroud)
is possible. This does not seem to be possible in HANA even with default specified
create column table mytable
(
"FIRST_COLUMN" varchar(50) default null,
"SECOND_COLUMN" varchar(50) default null,
"THIRD_COLUMN" varchar(50) default null
)
Run Code Online (Sandbox Code Playgroud)
我可以创建一个具有唯一 ID 的行,为所有字段指定 NULL,然后使用 ID 更新我想要的列,这似乎既耗时又尴尬,或者有更好的方法吗?
我需要从 SAP HANA 中的字符串中提取所有匹配的十进制数
文字:LOREN IPSUM DOLOR SIT AMET 73,89 X 339,85 X 0,08 CBC70° 1000/2,5
和
substr_regexpr('(\d(.*?)([\.\,]\d{1,3}))' in "Field" group 1
Run Code Online (Sandbox Code Playgroud)
我只从文本中提取了73,89。
和
\d(.*?)([\.\,]\d{1,3})+\d(.+?)([\,]\d{1,3})+\d(.*?)([\,]\d{1,3})
Run Code Online (Sandbox Code Playgroud)
我一起提取 3 个值:73,89 X 339,85 X 0,08
我需要提取它,但我无法这样做。
substr_regexpr('(\d(.*?)([\.\,]\d{1,3}))' in "Field" group 1 ==> 73,89
substr_regexpr('(\d(.*?)([\.\,]\d{1,3}))' in "Field" group 2 ==> 339,85
substr_regexpr('(\d(.*?)([\.\,]\d{1,3}))' in "Field" group 3 ==> 0,08
Run Code Online (Sandbox Code Playgroud)
谢谢!
hana ×10
sql ×3
cdc ×1
database ×1
javascript ×1
model ×1
odata ×1
performance ×1
python ×1
regex ×1
sap ×1
sapui5 ×1
sql-server ×1
teradata ×1