Как создать сложное представление и объединить эти таблицы
привет,
во первых мне очень жаль если я не могу написать хорошее название и добро пожаловать на любые рекомендации
у меня есть "st_items- которые есть "stitems_Type"поле , это поле определяет, является ли товар "запасом" или "запасом с пользовательским серийным номером".
примеры строк данных st_items :-
---------------------------------------------------- stitems_ID | stitems_Type | stitems_MinBalance | --- 1 | 0 | 10 | --- 2 | 0 | 20 | --- 3 | 1 | 5 | --- 4 | 1 | 15 | --- ----------------------------------------------------
если "stitems_Type = 0" , то товар является "запасом"
в этом случае вся информация о запасах, относящаяся к данному товару, будет храниться в таблице под названием "stock_noserials"с этим примером строк :
--------------------------------- id | stitems_ID | StockQnty | --- 1 | 1 | 5 | --- 2 | 1 | 3 | --- 3 | 2 | 500 | --- 4 | 2 | 150 | --- ---------------------------------
как таблица "stock_noserials ", запас пункт 1 = 8 (сумма StockQnty colmun) и запаса пункт 2 = 650 (сумма StockQnty colmun)
если "stitems_Type = 1" , то товар называется "запас с сериалами"
в этом случае вся информация о запасах, относящаяся к данному товару, будет храниться в таблице под названием "purchases_item_seriels"с этим примером строк :
------------------------------------- pis_ID| stitems_ID | pis_Statues| --- 1 | 3 | 1 | --- 2 | 3 | 2 | --- 3 | 3 | 4 | --- 4 | 3 | 5 | --- 5 | 4 | 2 | --- -------------------------------------
pis_Statues (1 = в наличии , 2 = продано , 4 = потеряно , 5 = возвращено продаж) Итак , для получения запаса будет подсчитан товар, который имеет эти значения pis_Statues (1,5,6)
как таблица "purchases_item_seriels", запас пункт 3 = 2 (количество записей, где значение pis_Statues colmun равно (1,5,6)) и запас пункт 4 = 0
я хочу создать представления, которые будут предоставлять мне элементы дефицита, как это происходит :
-------------------------------------------------- stitems_ID | stitems_MinBalance | stock | --- 1 | 10 | 8 | --- 3 | 5 | 2 | --- 4 | 15 | 0 | --- --------------------------------------------------
таким образом, я также могу создать хранимую процедуру, которая будет основана на этом представлении ..
Что я уже пробовал:
Я подумываю о том, чтобы создать Представление1 присоединиться st_itemsс stock_noserials и создание нового Изображение2 присоединиться st_itemsс purchases_item_seriels но я не знаю, как я могу создать представление, чтобы объединить эти два представления
теперь я получаю нехватку кода Entity Framework, но он очень медленный ..
st_itemsBindingSource.DataSource = nDB01.st_items .GroupBy(x => x.stitems_ID) .Select(grp => new { itemID = grp.Key, sumNoSerial = nDB01.stock_noserials.Where(u => u.stitems_ID == grp.Key).Sum(s => s.StockQnty), sumWithSerial = nDB01.purchases_item_seriels.Where(u => (u.stitems_ID == grp.Key && u.pis_Statues == 0) || (u.stitems_ID == grp.Key && u.pis_Statues == 5) || (u.stitems_ID == grp.Key && u.pis_Statues == 6)) .Count(), minBalance = grp.Select(s => s.stitems_MinBalance).FirstOrDefault() }) .Where(u => u.minBalance >= (u.sumNoSerial+u.sumWithSerial)).ToList();
кроме того, я получаю его подсчет с помощью этого кода :
//Shortages النواقص int Shortages_StockNoSer = nDB01.stock_noserials .GroupBy(x => x.stitems_ID) .Select(grp => new { itemID = grp.Key, sum = grp.Sum(x => x.StockQnty), min = grp.Select(s => s.st_items.stitems_MinBalance).FirstOrDefault() }).Where(u => u.sum < u.min && u.min != 0) .Count(); int Shortages_StockWithSer = nDB01.purchases_item_seriels .GroupBy(x => x.stitems_ID) .Select(grp => new { itemID = grp.Key, sum = grp.Count(), min = grp.Select(s => s.st_items.stitems_MinBalance).FirstOrDefault() }).Where(u => u.sum < u.min && u.min != 0) .Count(); int CountShortagesItems = Convert.ToInt32( Shortages_StockNoSer) + Convert.ToInt32(Shortages_StockWithSer);