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

Есть таблица в которой записываются записи заказа. Например, заказ состоит из трех позиций. Есть ХП, которая выборку группирует по номеру заказа и показывает в интерфейсе приложения одной строкой.

Все бы хорошо, но пользователи хотят еще видеть столбец с типами товаров, которые есть в заказе. Типов не много, 5 штук.

Например этот заказ
nomer namekolvo Price12Детская110012Плиссе 16мм1200
должна превращаться в строку
nomer Price vids12300 ДП16

А этот заказ
nomernamekolvo Price13Плиссе110013Вставная1 5013Вставная130
должна превращаться в строку
nomer Price vids13180 ПВ

Как это сделать?
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044563
Фотография komrad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkin,

а типы товаров откуда берутся?
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044567
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
komrad, типы товаров можно оформить дополнительной таблицей в БД.
Name snameДетская ДПлиссе 16мм П16Плиссе ПВставная В
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044593
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkin
komrad, типы товаров можно оформить дополнительной таблицей в БД.
Name snameДетская ДПлиссе 16мм П16Плиссе ПВставная В


Так, осталось кляузу for xml path('') освоить.
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044611
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,
Спасибо, вижу что так решают эту задачу, но у меня до этого идет группировка с GROUP BY ... HAVING

Ума не приложу, можно использовать ваш метод вместе с уже существующей группировкой?
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044612
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ilshatkin,
Как вариант можно в начале ХП сформировать эту строку, положить в переменную, а потом подставить в то что сейчас выдает.
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044669
Фотография court
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilshatkin
Спасибо, вижу что так решают эту задачу, но у меня до этого идет группировка с GROUP BY ... HAVING

Ума не приложу, можно использовать ваш метод вместе с уже существующей группировкой?
а что за сервер-то ?
string_agg не спасёт "отца русской демократии" ? )
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044676
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
court,
сервер 2012, поэтому string_agg не спасет "отца русской демократии"((
...
Рейтинг: 0 / 0
Помогите с запросом
    #40044678
ilshatkin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал по подсказке aleks222
выкладываю полную ХП, может кому будет полезным.

Если в ХП есть явные огрехи, покритикуйте, пожалуйста

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
SELECT 
	    urLica.name,                      
		urLica.idUrllico, 
		kontakt.nameKontakt,		
		kontakt.idKontakt,		
		kontakt.adresKontakt,		
		kontakt.telefonKontakt,		
		kontakt.other1Kontakt,		
		kontakt.other2Kontakt,		
		users.name AS polzovatel,  
		vib.tip,
		vib.vid, 
		vib.nomerStr, 
		vib.nomer, 
		vib.data, 
		vib.dataDo, 
		vib.summa, 
		vib.summaOpl, 
		vib.komment,
		vib.nomerVhod, 
		vib.vidVhod,  
		vib.proekt,
		vib.so, 
		vib.po, 		
		vib.Percentage, 
		vib.valuta, 
		vib.flag, 
		vib.flag1, 
		vib.driver,
		vib.driverTel,
		vib.driverKoment,
		vib.driverAuto,
		vib.driverRegNom,
		vib.dopInfo                  

	FROM 
	
	(SELECT  
		v.vid, 
		v.nomerStr, 
		v.nomer, 
		v.data, 
		v.dataDo, 
		SUM(v.summa / 100 * (100 - ISNULL(shemaProdaj.procent, 0))) AS summa, 
		v.summaOpl, 
		CAST(v.komment as varchar(4000)) AS komment,
		v.nomerVhod, 
		v.vidVhod,  
		v.proekt,
		v.so, 
		v.po, 		
		0 AS Percentage, 
		v.valuta, 
		v.flag, 
		v.flag1, 
		v.driver,
		v.driverTel,
		v.driverKoment,
		v.driverAuto,
		v.driverRegNom,
		v.dopInfo,
		v.kontragent,
		v.userID,
		v.kontakt,
		(SELECT distinct ''+strukturaTovara.snameZvena 
                 FROM  viborkaTovara AS v2     
			 INNER JOIN tovar ON tovar.idTovar=v2.tovar
				 INNER JOIN strukturaTovara  ON strukturaTovara.idZvena = tovar.vStrukture
                 WHERE v.nomer = v2.nomer
                 FOR XML PATH ('')) as tip                                            
	                            
	FROM         viborkaTovara AS v    
              LEFT OUTER JOIN shemaProdaj ON v.shema =shemaProdaj.idShema
	WHERE v.sklad = @idSklad
	
	GROUP BY v.vid,
		v.nomerStr, 
		v.nomer, 
		v.summaOpl, 
		v.data, 
		CONVERT(varchar(4000), v.komment), 
		v.dataDo,		
		v.nomerVhod, 
		v.vidVhod, 		 
		v.proekt,
		v.so, 
		v.po,
		v.valuta, 
		v.flag, 
		v.flag1, 
		v.driver,
		v.driverTel,
		v.driverKoment,
		v.driverAuto,
		v.driverRegNom,
		v.dopInfo,
		v.vid,
		v.del,
		v.kontragent,
		v.userID,
		v.kontakt
		HAVING (v.vid = @vid) AND (v.del = 0)  AND (SUM(v.kolvo) > SUM(v.aktualnost))  AND ((v.kontragent = @idKontr) OR (@idKontr=-1))) as vib 
		INNER JOIN urLica ON vib.kontragent = urLica.idUrllico  
                          INNER JOIN [dbo].[sotrudniki] AS users ON vib.userID = users.id LEFT OUTER JOIN kontakt	ON vib.kontakt = kontakt.idKontakt
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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