テストの一部としてUCCIDが1つのBUYIDに結び付けられているかどうかを確認する必要がある2つのテーブルがあります。 UCCIDは自分のテーブルで一意でなければなりません。しかし、BUyidは複数のUCCIDを持つことができます。しかし、UCCIDは一意の(1つの)BUYIDに結びつけられるべきです。1つの値だけ関連テーブルに結び付けられているIDを確認する方法
CREATE TABLE [dbo].[EquipmentBase](
[EDAEquipmentId] [uniqueidentifier] NOT NULL,
[BuyID] [nvarchar](100) NULL,
[EqtAE] [nvarchar](100) NULL,
[EqtSn] [nvarchar](100) NULL,
[EqtSz] [nvarchar](100) NULL,
[EqtUccYr] [nvarchar](100) NULL,
[EqtUnit] [nvarchar](100) NULL,
[EqtValue] [nvarchar](100) NULL,
[UccID] [NVARCHAR](100) NULL,
CONSTRAINT [PK__EquipmentBase] PRIMARY KEY CLUSTERED
(
[_EDAEquipmentId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[activityBase](
[activityId] [UNIQUEIDENTIFIER] NOT NULL,
[UccID] [NVARCHAR](100) NULL,
[ASCity] [NVARCHAR](100) NULL,
[ASClass] [NVARCHAR](100) NULL,
[ASComp] [NVARCHAR](100) NULL,
[ASID] [NVARCHAR](100) NULL,
[ASState] [NVARCHAR](100) NULL,
[BuyADR1] [NVARCHAR](100) NULL,
[BuyADR2] [NVARCHAR](100) NULL,
[BuyID] [NVARCHAR](100) NULL,
[UccCom] [NVARCHAR](100) NULL,
[UccDate] [DATETIME] NULL,
[UccFips2] [NVARCHAR](100) NULL,
[UccStatus] [NVARCHAR](100) NULL,
[UccTransID] [NVARCHAR](100) NULL,
CONSTRAINT [PK__activityBase] PRIMARY KEY CLUSTERED
(
[activityId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 80) ON [PRIMARY]
) ON [PRIMARY]
GO
私は以下のクエリを試しましたが、私は何を探していますか?誰でもplsを助けることができますか?私は、UCCIDが単一のBUYIDに結びつくように、以下のクエリが0を返すことを期待しています。
SELECT COUNT(*) FROM dbo.activityBase ab
JOIN (SELECT eb.BuyID FROM dbo.EquipmentBase eb
WHERE eb.UccID IS NOT NULL
GROUP BY eb.BuyID
HAVING COUNT(eb.BuyID)=1)c
ON c.BuyID = ab.BuyID
あなたは「UCCIDは自分のテーブルで一意でなければなりません。両方のテーブルに? –
サンプルデータを提供できますか?達成したいことはありますか? –