problem
How to write query get counts of part by two fields OnlineData and OfflineData from General Table ?
Result Expected
OnlineData OfflineData CountParts
www.spare.com www.sic.vom 3
www.while.com www.datacomer.com 0
I need to write query get count number of parts per every OnlineData and OfflineData that have 'Coca' text on
Accepted value table from table General and not have 'Coca' text on accepted value table from table Reach
based on PartId and SourceType
meaning i need count parts have Coca text from General Table and same parts not have 'Coca' text from table Reach .
AS Example PartId : 200 have 'Coca' text on Accepted value from General Table and not have 'Coca' text from table Reach that actually that i need to count it
if nothing then count of parts will be 0
the join between (reach table and General table) AND accepted value is sourcetype=Accptedvlueid
the join between reach table and General Table PartId .
What I have tried:
USE [Store]
CREATE TABLE [dbo].[AcceptedValue](
[AcceptedId] [int] NOT NULL,
[AcceptedName] [nvarchar](50) NULL,
CONSTRAINT [PK_AcceptedValue] PRIMARY KEY CLUSTERED
(
[AcceptedId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[General](
[GeneralId] [int] NOT NULL,
[PartId] [int] NULL,
[SourceType] [nvarchar](50) NULL,
[OnlineData] [nvarchar](200) NULL,
[OfflineData] [nvarchar](200) NULL,
CONSTRAINT [PK_General] PRIMARY KEY CLUSTERED
(
[GeneralId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
CREATE TABLE [dbo].[Reach](
[ReachId] [int] NULL,
[PartId] [int] NULL,
[SourceType] [nvarchar](50) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (500, N'CocaDone')
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (502, N'CocaJes')
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (510, N'ComSpare')
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (512, N'ColNumber')
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (550, N'KidleAtlanta')
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (560, N'Helogin')
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (900, N'CocaHard')
INSERT [dbo].[AcceptedValue] ([AcceptedId], [AcceptedName]) VALUES (905, N'CodSeries')
INSERT [dbo].[General] ([GeneralId], [PartId], [SourceType], [OnlineData], [OfflineData]) VALUES (120, 200, N'900', N'www.spare.com', N'www.sic.vom')
INSERT [dbo].[General] ([GeneralId], [PartId], [SourceType], [OnlineData], [OfflineData]) VALUES (125, 277, N'500', N'www.spare.com', N'www.sic.vom')
INSERT [dbo].[General] ([GeneralId], [PartId], [SourceType], [OnlineData], [OfflineData]) VALUES (129, 299, N'502', N'www.spare.com', N'www.sic.vom')
INSERT [dbo].[General] ([GeneralId], [PartId], [SourceType], [OnlineData], [OfflineData]) VALUES (130, 250, N'550', N'www.while.com', N'www.datacomer.com')
INSERT [dbo].[Reach] ([ReachId], [PartId], [SourceType]) VALUES (120, 200, N'905')
INSERT [dbo].[Reach] ([ReachId], [PartId], [SourceType]) VALUES (125, 277, N'510')
INSERT [dbo].[Reach] ([ReachId], [PartId], [SourceType]) VALUES (129, 299, N'512')
INSERT [dbo].[Reach] ([ReachId], [PartId], [SourceType]) VALUES (130, 250, N'560')