以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]sql查询表无法保存  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=130220)

--  作者:xndd
--  发布时间:2019/1/16 11:13:00
--  [求助]sql查询表无法保存

我写了一个sql,查询外部数据源的,预览都没问题,保存时提示:

 


图片点击可在新窗口打开查看此主题相关图片如下:pic_2019-01-16_11-11-57.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:pic_2019-01-16_11-12-28.png
图片点击可在新窗口打开查看

sql语句:


S ELECT ROW_NUMBER() OVER (ORDER BY a.DOC_DATE ASC) AS [序列], CONVERT(VARCHAR(10),a.DOC_DATE,120) AS [单据日期],
CONVERT(VARCHAR(10),a.ApproveDate,120) AS [审核日期],
a.SUPPLIER_FULL_NAME AS [供应商], c.EMPLOYEE_NAME AS [负责人员], d.ADMIN_UNIT_NAME AS [部门],
e.WAREHOUSE_NAME AS [限定仓库], a.REMARK AS [备注],
f.ITEM_CODE AS [品号], b.ITEM_DESCRIPTION AS [品名], b.ITEM_SPECIFICATION AS [规格],
b.BUSINESS_QTY AS [数量], g.UNIT_NAME AS [单位],
h.PRICE_QTY AS [单价],
i.WAREHOUSE_NAME AS [仓库], j.LOT_CODE AS [批号]

F ROM dbo.{PURCHASE_RECEIPT} a JOIN dbo.{PURCHASE_RECEIPT_D} b ON b.PURCHASE_RECEIPT_ID = A.PURCHASE_RECEIPT_ID
 JOIN dbo.{EMPLOYEE} c ON c.EMPLOYEE_ID = a.Owner_Emp
 JOIN dbo.{ADMIN_UNIT} d ON d.ADMIN_UNIT_ID = a.Owner_Dept
 JOIN dbo.{WAREHOUSE} e ON e.WAREHOUSE_ID = a.WAREHOUSE_ID
 JOIN dbo.{ITEM} f ON f.ITEM_BUSINESS_ID = b.ITEM_ID
 JOIN dbo.{UNIT} g ON g.UNIT_ID = b.BUSINESS_UNIT_ID
 JOIN dbo.{PURCHASE_ARRIVAL_D} h ON h.PURCHASE_ARRIVAL_D_ID = b.SOURCE_ID
 JOIN dbo.{WAREHOUSE} i ON i.WAREHOUSE_ID = b.WAREHOUSE_ID
 LEFT JOIN dbo.{ITEM_LOT} j ON j.ITEM_LOT_ID = b.ITEM_LOT_ID
WHERE A.DOC_NO = \'A121-2019011408\'

怎么办啊?


--  作者:有点甜
--  发布时间:2019/1/16 12:01:00
--  

1、新建一个项目,添加数据源,然后测试添加查询表,是否可以?

 

2、如果还有问题,减少你select的列,比如只select一二列,看哪个列导致的问题。


--  作者:xndd
--  发布时间:2019/1/16 13:01:00
--  
甜版,是最后一列,删掉就好了,这列我用的是left join,有问题吗   j.LOT_CODE AS [批号]
--  作者:xndd
--  发布时间:2019/1/16 14:58:00
--  
我另一个sql查询表增加了left join可以
就这张不行,做到视图里面也不行

--  作者:有点甜
--  发布时间:2019/1/16 15:35:00
--  

 

是不是你这个列 LOT_CODE 设置了约束,比如非空等,但生成的时候,此列值变成了空值?

 

 


--  作者:xndd
--  发布时间:2019/1/16 15:56:00
--  

这列肯定设置了非空啊

我也设置了是left join,如果为空就null

sql在sql查询分析器里面都正常

在ft里面预览也正常的


--  作者:有点甜
--  发布时间:2019/1/16 16:24:00
--  

 

生成的查询表,有检测和限制的。如果字段为非空,但如果合成后有空值,就会报错。

 

 


--  作者:xndd
--  发布时间:2019/1/16 16:38:00
--  
请问甜版那应该怎么办?
查询出来的结果,就是用来做excel报表的

--  作者:有点甜
--  发布时间:2019/1/16 16:50:00
--  
以下是引用xndd在2019/1/16 16:38:00的发言:
请问甜版那应该怎么办?
查询出来的结果,就是用来做excel报表的

 

你可以试试后台报表

 

http://www.foxtable.com/webhelp/scr/3233.htm

 

如果确实需要这样的查询表,试试判断一下 LOT_CODE 是否为null,如 isnull(j.LOT_CODE, \'空值\')


--  作者:xndd
--  发布时间:2019/1/16 16:58:00
--  
判断非空的我这样写: CASE j.LOT_CODE WHEN NULL THEN \'\' ELSE j.LOT_CODE end AS [批号] 
但是ft依旧报同样的错.

后台报表我试试