0
我有一个返回某些特定数据的查询:添加行选择结果
SELECT sub.*
FROM (
Select item_id, field_id, attr_val from [CONTRACT_ATTR] where item_id in (select item_id from [CONTRACT_ATTR] where field_id = 326 and attr_val = 'Y')
) sub
WHERE field_id = 234 or field_id = 413
值A750与在制造商表item_pk相关。我想从MFR表中取回item_name,并将其作为每个相关item_id的一行添加。所以16例如会有3行。而来自MRF的item_name将位于attr_val列中。
我现在最接近的是这是拉动item_name,但在错误的行,并删除我需要的其他领域。
SELECT sub.*, m.item_name
FROM (
Select item_id, field_id, attr_val from [CONTRACT_ATTR] where item_id in (select item_id from [CONTRACT_ATTR] where field_id = 326 and attr_val = 'Y')
) sub
JOIN MFR m
ON m.item_pk = sub.attr_val and field_id = 234
什么我做错了,我该如何解决?
编辑:
CREATE TABLE [dbo].[CONTRACT_ATTR](
[ITEM_ID] [int] NOT NULL,
[FIELD_ID] [int] NOT NULL,
[ATTR_VAL] [varchar](500) NOT NULL,
[UPD_DTT] [datetime] NOT NULL,
[UPD_USR] [varchar](500) NOT NULL,
CONSTRAINT [PK_CONTRACT_ATTR] PRIMARY KEY CLUSTERED
(
[ITEM_ID] ASC,
[FIELD_ID] ASC,
[ATTR_VAL] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
CREATE TABLE [dbo].[MFR](
[ITEM_ID] [int] IDENTITY(1,1) NOT NULL,
[ITEM_NAME] [varchar](500) NOT NULL,
[ADD_DTT] [datetime] NOT NULL,
[ADD_USR] [varchar](500) NOT NULL,
[UPD_DTT] [datetime] NOT NULL,
[UPD_USR] [varchar](500) NOT NULL,
[ACTIVE_IND] [char](1) NULL,
[ITEM_PK] [varchar](500) NULL,
CONSTRAINT [PK_MFR] PRIMARY KEY CLUSTERED
(
[ITEM_ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
请问您可以添加表格模式到您的问题? –
超级快速文本表,从SSMS复制并粘贴到这里:https://senseful.github.io/web-tools/text-table/然后点击“Create Table”,然后将输出和格式复制为问题的代码。 – SqlZim
是'[ITEM_PK]'唯一的吗? – SqlZim