Как написать запрос get counts of part by two fields onlinedata and offlinedata from general table ?
проблема
Как написать запрос получить количество деталей по двум полям OnlineData и OfflineData из общей таблицы ?
Ожидаемый Результат
OnlineData OfflineData CountParts www.spare.com www.sic.vom 3 www.while.com www.datacomer.com 0
Мне нужно написать запрос get count количество частей на каждый OnlineData и OfflineData, на которых есть текст 'Coca'
Принимается таблица значений из таблицы с общими и не имеют 'Кока' текста по принятым таблицы значений из таблицы достичь
на основе PartId и SourceType
это означает, что мне нужно подсчитать части, имеющие текст Coca из общей таблицы, и те же части, которые не имеют текста Coca из таблицы reach .
В качестве примера PartId : 200 имеют текст "Coca" на принятом значении из общей таблицы и не имеют текста "Coca" из таблицы Reach, что на самом деле мне нужно его подсчитать
если ничего то количество деталей будет равно 0
в месте соединения (табл достичь и общая таблица) и приняла значение тип источника=Accptedvlueid
соединение между таблицей reach и общей таблицей PartId .
Что я уже пробовал:
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')