HANA上的Union Select

2020-08-25 22:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


下午好,我有一个SQL查询,我正在翻译为HANA,但发现自己被锁了,

 单独的select语句可以正常运行,但是通过UNION或UNION ALL语句将它们放在一起会引发错误,并且不起作用。

 你能帮我个忙吗? 我是用SQL和SQL HANA编写编程语句的新手,而且我是自学成才的。
  

非常感谢大家,我复制了脚本:

选择T0。" DocNum"," Efectivo" AS" Tipo",T0。" DocDate" AS" Registro",T0。" DocDueDate" AS" Vencimiento",T0。" CashAcct",T0。" CashSum",T0。" CardCode" AS" Cliente",T0。" CardName" AS" Nombre",T0。" DocCurr" AS" Mon",T0。" JrnlMemo" AS"细节",''AS" Nro",''AS" Endosable",''AS" Interno"从ORCT T0到T0。"现金总和" <> 0 AND T0。" DocDate"> ='[% 1]'AND T0。" DocDate" <='[%2]'UNION SELECT T0。" DocNum",'Transferencias'AS" Tipo",T0。" DocDate" AS" Registro",T0。" DocDueDate" AS" Vencimiento",T0。" TrsfrAcct",T0。" TrsfrSum",T0。" CardCode" AS" Cliente",T0。" CardName" AS" Nombre",T0。" DocCurr" AS" Mon",T0。" JrnlMemo" 从ORCT T0到T0的"详细信息"。" TrsfrSum" <> 0和T0。" DocDate"> ='[%1]'和T0。" DocDate" <='[%2]'UNION SELECT T1。" DocNum ",'Cheques'AS" Tipo",T2。" DocDate" AS" Registro",T1。" DueDate" AS" Vencimiento",T1。" CheckAct",T1。" CheckSum",T2。" CardCode" AS" Cliente" ",T2。" CardName" AS" Nombre",T2。" DocCurr" AS" Mon",T4。"禁令 kName" AS"详细信息",CAST(T1。" CheckNum" AS char(8))AS" Nro",T1。" Trnsfrable" AS" Endosable",T1。" CheckAbs" AS" Interno"来自RCT1 T1左外连接 ODSC T4在T1上。" BankCode" = T4。" BankCode"在T1上左外连接ORCT T2。" DocNum" = T2。" DocNum"在T2上。" DocDate"> ='[%1]'和T2。" DocDate " <='[%2]'UNION SELECT T0。" DocNum"," Retenciones" AS" Tipo",T0。" DocDate" AS" Registro",T2。" DueDate" AS" Vencimiento",T6。"帐户" ,T2。" SumPercpAm",T0。" CardCode" AS" Cliente",T0。" CardName" AS" Nombre",T0。" DocCurr" AS" Mon",T6。" WTName" AS" Detalle",CAST(T2 。" RefNumber" AS char(8))AS" Nro",''AS" Endosable",''AS" Interno"来自OWTC T2内连接WTC1 T5在T2上。" AbsEntry" = T5。" AbsEntry"内连接OWTD T6在T5上。" WtAbsEntry" = T6。 1]'和T0。" DocDate" <='[%2]';

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


下午好,我有一个SQL查询,我正在翻译为HANA,但发现自己被锁了,

 单独的select语句可以正常运行,但是通过UNION或UNION ALL语句将它们放在一起会引发错误,并且不起作用。

 你能帮我个忙吗? 我是用SQL和SQL HANA编写编程语句的新手,而且我是自学成才的。
  

非常感谢大家,我复制了脚本:

选择T0。" DocNum"," Efectivo" AS" Tipo",T0。" DocDate" AS" Registro",T0。" DocDueDate" AS" Vencimiento",T0。" CashAcct",T0。" CashSum",T0。" CardCode" AS" Cliente",T0。" CardName" AS" Nombre",T0。" DocCurr" AS" Mon",T0。" JrnlMemo" AS"细节",''AS" Nro",''AS" Endosable",''AS" Interno"从ORCT T0到T0。"现金总和" <> 0 AND T0。" DocDate"> ='[% 1]'AND T0。" DocDate" <='[%2]'UNION SELECT T0。" DocNum",'Transferencias'AS" Tipo",T0。" DocDate" AS" Registro",T0。" DocDueDate" AS" Vencimiento",T0。" TrsfrAcct",T0。" TrsfrSum",T0。" CardCode" AS" Cliente",T0。" CardName" AS" Nombre",T0。" DocCurr" AS" Mon",T0。" JrnlMemo" 从ORCT T0到T0的"详细信息"。" TrsfrSum" <> 0和T0。" DocDate"> ='[%1]'和T0。" DocDate" <='[%2]'UNION SELECT T1。" DocNum ",'Cheques'AS" Tipo",T2。" DocDate" AS" Registro",T1。" DueDate" AS" Vencimiento",T1。" CheckAct",T1。" CheckSum",T2。" CardCode" AS" Cliente" ",T2。" CardName" AS" Nombre",T2。" DocCurr" AS" Mon",T4。"禁令 kName" AS"详细信息",CAST(T1。" CheckNum" AS char(8))AS" Nro",T1。" Trnsfrable" AS" Endosable",T1。" CheckAbs" AS" Interno"来自RCT1 T1左外连接 ODSC T4在T1上。" BankCode" = T4。" BankCode"在T1上左外连接ORCT T2。" DocNum" = T2。" DocNum"在T2上。" DocDate"> ='[%1]'和T2。" DocDate " <='[%2]'UNION SELECT T0。" DocNum"," Retenciones" AS" Tipo",T0。" DocDate" AS" Registro",T2。" DueDate" AS" Vencimiento",T6。"帐户" ,T2。" SumPercpAm",T0。" CardCode" AS" Cliente",T0。" CardName" AS" Nombre",T0。" DocCurr" AS" Mon",T6。" WTName" AS" Detalle",CAST(T2 。" RefNumber" AS char(8))AS" Nro",''AS" Endosable",''AS" Interno"来自OWTC T2内连接WTC1 T5在T2上。" AbsEntry" = T5。" AbsEntry"内连接OWTD T6在T5上。" WtAbsEntry" = T6。 1]'和T0。" DocDate" <='[%2]';

付费偷看设置
发送
3条回答
渐行渐远_HoldOn
1楼 · 2020-08-25 22:49.采纳回答

您在查询中合并了四个不同的SELECT语句,但是第二个语句只有9个字段,而不是其他字段的12个字段。 我认为您错过了为第二条语句添加带有空值的" Nro"," Endosable"和" Interno"列的方法,就像您为第一条语句所做的一样。

nice_wp
2楼-- · 2020-08-25 22:29

Florian Pfeffer 非常多! 在HANA中必须声明NULL,而不能在SQL中声明''

 SELECT T0。" DocNum",
  'Efectivo'AS" Tipo",
  T0。" DocDate"作为" Registro",
  T0。" DocDueDate" AS" Vencimiento",
  T0。" CashAcct",
  T0。"现金总和",
  T0。" CardCode" AS" Cliente",
  T0。" CardName" AS" Nombre",
  T0。" DocCurr" AS" Mon",
  T0。" JrnlMemo" AS"详细信息",
  null AS" Nro",
  null AS" Endosable",
  null从ORCT T0到T0,为" Interno"。"现金总和" <> 0和T0。" DocDate"> ='[%1]'和T0。" DocDate" <='[%2]'
  联盟
  选择T0。" DocNum",
  " Transferencias" AS" Tipo",
  T0。" DocDate"作为" Registro",
  T0。" DocDueDate" AS" Vencimiento",
  T0。" TrsfrAcct",
  T0。" TrsfrSum",
  T0。" CardCode" AS" Cliente",
  T0。" CardName" AS" Nombre",
  T0。" DocCurr" AS" Mon",
  T0。" JrnlMemo" AS"详细信息",
  null AS" Nro",
  null AS" Endosable",
  null从ORCT T0到T0,为" Interno"。" TrsfrSum" <> 0和T0。" DocDate"> ='[%1]'和T0。" DocDate" <='[%2]'
   联盟
   选择T1。" DocNum",
  "支票" AS" Tipo",
  T2。" DocDate" AS"注册商",
  T1。" DueDate" AS" Vencimiento",
  T1。" CheckAct",
  T1。"校验和",
  T2。" CardCode" AS" Cliente",
  T2。" CardName" AS" Nombre",
  T2。" DocCurr" AS" Mon",
  T4。"银行名称"为"详细信息",
  CAST(T1。" CheckNum" AS char(8))AS" Nro",
  T1。" Trnsfrable"为" Endosable",
  T1。" CheckAbs"为" Interno",来自RCT1 T1左外部联接ODSC T4在T1上。" BankCode" = T4。" BankCode"左外部联接Orct T2在T1上。" DocNum" = T2。  DocDate"> ='[%1]'和T2。" DocDate" <='[%2]'
  联盟
  选择T0。" DocNum",
  " Retenciones" AS" Tipo",
  T0。" DocDate"作为" Registro",
  T2。" DueDate" AS" Vencimiento",
  T6。"帐户",
  T2。" SumPercpAm",
  T0。" CardCode" AS" Cliente",
  T0。" CardName" AS" Nombre",
  T0。" DocCurr" AS" Mon",
  T6。" WTName" AS"详细信息",
  CAST(T2。" RefNumber" AS char(8))AS" Nro",
  null AS" Endosable",
  null从OWTC T2内连接WTC1 T5到T2的AS" Interno"。" AbsEntry" = T5。" AbsEntry"内连接OWTD T6在T5上。" WtAbsEntry" = T6。  = T2。" RctAbs",T2。" RctType" ='24'AND T0。" DocDate"> ='[%1]'AND T0。" DocDate" <='[%2]';
 
xfwsx85
3楼-- · 2020-08-25 22:49

Hola,

您的代码太大了,无法实际执行,但是请记住这一点,UNION命令用于从两个表中选择相关信息,就像JOIN命令一样。 但是,使用UNION命令时,所有选定的列都必须具有相同的数据类型。 使用UNION,只会选择不同的值。

因此,请确保所有SQL命令都返回相同数量的文件,并且它们具有相同的数据类型。

最佳

一周热门 更多>