[已解决:感谢 bluefeet 和 Brian,我必须构建这个工作查询(结果我还需要第四个表/视图)]"
SELECT A.SalesLineID, A.ArticleResultID, B.ID, C.ID, D.Value
FROM VIEWA AS A
INNER JOIN TABLEB AS B ON A.ArticleResultID = B.ArticleResultID
AND B.Name = N'Collect' AND DAPR.Value = 1
INNER JOIN TABLEC AS C ON B.ArticleResultID = C.ID
AND C.Name='Assemble'
AND C.Value = 1
INNER JOIN TABLED AS D ON D.ArticleResultID = C.ParentId
AND D.Name = 'IndexY'
WHERE (A.SalesID = @SalesID)
[更新:我犯了一个错误,假设 IndexY/Color 和 ProdId 字段表 A 是某种参数/属性表,只有 5 列 ID - NAME - VALUE - ARTICLERESULTID - PRODID。IndexY 是 Name 字段的值..]
我无法构建正确的 sql 查询来完成这个技巧:
我有以下 2 个表:
Table A
ID Name Value ArticleResultID ProdID Color
1 Operation Collect 110 10 BLACK
2 IndexY 10 110 10 -
3 Operation Collect 101 11 WHITE
Table B
ID ParentID Name Value
101 110 Assemble 1
101 100 Assemble 0
脚步:
Find record in A with Name = Operation and Value = Collect and ProdId = 11 AS ORG_A
Find record in B With B.ID = ORG_A.ArticleResultId AND B.NAME = 'Assemble'AND B.VALUE = 1 AS B
Find record in A With A.ArticleResultID = B.ParentID as NEW_A
在上述场景中 ORG_A.ArticleResultID = 11 --> B.ParentID = 110 --> NEW_A.ARTICLERESULTID = 110 --> (IndexY - Value - 10)
非常感谢有人能告诉我如何构建这个查询..
最好的祝福,
迈克 D
[旧描述:]
我无法构建正确的 sql 查询来完成这个技巧:
我有以下 2 个表:
Table A
Name Value ArticleResultID IndexY Color ProdID
Operation Collect 110 10 - 0
Operation Collect 101 _ Black 100
Table B
ID ParentID Name Value Dx Dy
101 110 Assemble 1 1000 500
101 100 Assemble 0 400 300
我想从 A 中获取所有记录,其中 NAME 等于 'operation',VALUE 等于 'Collect' 和 PRODID = '100' 但我还想要(这是我的问题)表 A 中记录的 IndexY 值和表 B 中的 PARENTID加入 TABLE B.ID = A.ArticleResultID AND Name = 'Assemble' 和 VALUE = '1'
在上面的场景中,ParentID 110 给了我表 A 中的记录,ArticleResultID 110 和 IndexY (10)。
非常感谢有人能告诉我如何构建这个查询..
最好的祝福,
迈克 D