我正在与MS Navision合作,并且遇到以下情况。
2个表类似于下图中,需要产生您在下面看到的结果为“所需”。为了识别具有NULL值的行并将其显示在报告中,这是必需的:
TABLE1
'resizableColumns="true"'
表2
primeng
所需
+---------+-------+
| Cluster | OGE |
+---------+-------+
| B1309 | A |
| B1309 | B |
+---------+-------+
这是必要的,以便识别表1中哪些记录在表2中没有每种类型的对应条目
我的表可以有成千上万的行,所以这就是为什么我想找到一种有效的方法来识别此行,而不用循环抛出每一行。
您至少知道如何在SQL Server或编程语言中实现这种功能,也许我可以在NAV中实现逻辑?
谢谢
答案 0 :(得分:0)
这可以解决问题:
SELECT tmp.*, t2.*
FROM (SELECT * FROM Table1 t1a, (SELECT DISTINCT [Type] FROM Table2) t2a) tmp
LEFT JOIN Table2 t2 ON (tmp.Cluster = t2.Cluster AND tmp.OGE = t2.OGE AND tmp.Type = t2.Type)
然后只有您需要的结果:
SELECT tmp.*
FROM (SELECT * FROM Table1 t1a, (SELECT DISTINCT [Type] FROM Table2) t2a) tmp
LEFT JOIN Table2 t2 ON (tmp.Cluster = t2.Cluster AND tmp.OGE = t2.OGE AND tmp.Type = t2.Type)
WHERE t2.Cluster IS NULL
第一个(错误的)答案
期望的东西似乎不同于您在期望表中显示的东西? 看起来以下查询将执行该操作:
SELECT Table1.Cluster
FROM Table1
LEFT JOIN Table2 ON (Table1.Cluster = Table2.Cluster AND Table1.OGE = Table2.OGE)
WHERE Table2.Cluster IS NULL