powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите написать запрос
2 сообщений из 2, страница 1 из 1
Помогите написать запрос
    #40026854
mihej82
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем форумчанам доброго дня и здравия!

Понадобилось написать программу для учета штрихкодов продукции (честный знак). В кратце на продукцию - бутылки с водой наносится этикетка с уникальным кодом и они упаковываются в коробки на каждую тоже наносится уникальный ШК, те в свою очередь в коробки побольше, а те в свою очередь в паллеты. Так же иерархия может не содержать один промежуточный короб, те бутылки упаковываются в короба, а те в свою очередь сразу в паллеты.

БД содержит 3 основных таблицы:

1. Product (справочник продукции)
Код: sql
1.
2.
3.
4.
REATE TABLE [dbo].[Product](
        [id] [int] IDENTITY(1,1) NOT NULL,
	[Artikul] [nvarchar](20) NOT NULL,
	[Name] [varchar](50) NOT NULL



2. agreg (таблица содержащая данные о бутылке и в каком коробе она находится)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE [dbo].[agreg](
        [id] [int] IDENTITY(1,1) NOT NULL,	
        [Date_Create] [datetime2](7) NOT NULL,
	[Product] [int] NOT NULL,
	[Line] [int] NOT NULL,
	[Barcode_bottle] [nvarchar](150) NOT NULL,
	[Barcode_box] [nvarchar](26) NULL

3. Parents (таблица дальнейшей иерархии агрегации)
[src]CREATE TABLE [dbo].[Parents](
        [id] [int] IDENTITY(1,1) NOT NULL,	
        [children] [nchar](26) NULL,
	[agregation_level] [int] NULL, (уровень агрегации если короб в коробе = 2, короб в паллете =3)
	[Parents] [nchar](26) NULL



Нужно написать запрос для получения количества агрегированной продукции в бутылках, коробах, коробах в коробах и коробах в паллетах.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select distinct t1.Line, t2.artikul, t2.name, count(distinct t1.barcode_bottle),
count(distinct t1.Barcode_box),  
from [fsmnew].[dbo].[Product] as t2 
join [fsmnew].[dbo].[agregation] as t1 on t2.id = t1.product 
join [fsmnew].[dbo].[Parents] as t3 on t1.barcode_box = t3.children
 where t1.barcode_box in 
(select barcode_box from[dbo].[agreg] where Date_Create = ('2020-12-03') and 
group by t1.Line,t2.Name,t2.artikul



Таким запросом я успешно получаю количество бутыло и коробов, но как найти количество коробов в коробах и коробов в паллетах я не знаю.
Огромное спасибо всем откликнувшимся.
...
Рейтинг: 0 / 0
Помогите написать запрос
    #40026908
fkthat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mihej82
БД содержит 3 основных таблицы

Это не БД, а трешугарисодомия. Почитай что ли где-нибудь про способы создания иеархий в реляционных БД.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите написать запрос
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]