Всичко за правенето на уеб страници и езици за програмиране.
ArturDent - Почти Безобиден
До колкото разбирам:
- изхода трябва да ти е таблица, а не текст както е показал колегата. Ако не нещо друго, доста се опростяват нещата.
- броя на колоните на изходната таблица е неизвестен, защото броя на редовете е неизвестен.

Виж това:
Transpose Columns to Rows in Sql Server 2005 using UNPIVOT
Transpose Rows to Columns in Sql Server 2005 using PIVOT,
подобно е.

Ама нали ти казах че ще бъде грозна работа. :x

Абе няма ли отделни таблици със задачите и с имената ? А тази само да ги свързва?
torbalan - Дървен философ
първа задача - пешо, гошо, тошо...
втора задача - пена, кина..

в цитирания от мен случай две колони вършат работа...
в едната текста на задачава, в другата пешо, гошо и тошо...

ArturDent написа:
...Абе няма ли отделни таблици със задачите и с имената ? А тази само да ги свързва?
задачите в общия случай са различни, но понякога се случва едно и също нещо да се прати на няколко души...

аз по принцип съм измислил две решения....

1. убедил съм колежката, че това коети иска няма смисъл...

2. ако някой ден ми дойде кефа - ще преструктурирам данните (надали ще се случи) и задачите и жертвите ще са в различни таблици :)
imarh - специалист
мога ли с една (или повече) заявка да получа резултат от типа

първа задача - пешо, гошо, тошо...
втора задача - пена, кина..
Е не искаше ли точно това?
torbalan написа:
така мога и аз да си го напиша, но не ми върши работа ;)
torbalan написа:
първа задача - пешо, гошо, тошо...
втора задача - пена, кина..

в цитирания от мен случай две колони вършат работа...
в едната текста на задачава, в другата пешо, гошо и тошо...
Трябва ти код, който да ти изкара резултата в HTML таблица ли?
torbalan - Дървен философ
код на РНР мога да пиша почти всякакъв си (за справка виж сайта в подписа ми :))...

в случая говоря за данните само, а не за представянето им...

трябва ми SQL заявка, която на принципа на PIVOT да кажем да върне двете колони, които съм посочил...

дори имам някаква идея как да стане, но за сега е само идея...

ако успея - ще докладвам как :)
ArturDent - Почти Безобиден
torbalan написа:
1. убедил съм колежката, че това коети иска няма смисъл...
2. ако някой ден ми дойде кефа - ще преструктурирам данните (надали ще се случи) и задачите и жертвите ще са в различни таблици
Точка 1 е май твоят отговор. За точка 2 съм съгласен с теб. Но винаги има и точка 3 - "Технически е невъзможно" :-D.

Важи принципа в програмирането:
1 - С 10% от времето решаваме първите 70% от проблема.
2 - С още 10% от времето, решаваме още 25% от проблема.
3 - С 80% от времето решаваме последните 4% от проблема.
4 - 1% остава винаги нерешен.

Заебаваме 3 и 4, и увеличаваме производителността 5-10 пъти.
Демек: "Струва ли си?"


П.П. А не каза какво ще правиш получената таблица? Да мислим решение в друга посока?
Дали няма да е по-лесно да обърнеш резултата първо в стринг (с разделители) и след това от стринг в таблица. Поне ще пишеш на по мощен език. И като гледам няма май да вземе много памет.
torbalan - Дървен философ
ако си преодолея мързела и го напиша на РНР няма да има драми изобщо
обаче - виж заключението, до което си стигнал "Струва ли си?"

зачекнал съм го на SQL да го правя защото не знам как ще стане и самото решение на проблема ми е интересно, макар и да не е особено смислено :)
BAlexandrov - специалист
Ето ти идея за вариант отгоре-отгоре. Ако искаш по-подробно дай SQL за тестовите таблици и данни - в момента от ненормализирани данни искаш да извадиш нещо, което не му е работа на SQL. Той много работи може, но не е направен за това :)

Код: Избери всички

CREATE FUNCTION OwnerList
(
	@JobID INT
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
	DECLARE @Result NVARCHAR(MAX)
	SET @Result  = ''
	
	SELECT @Result = @Result + OwnerName + ', '
	FROM Jobs
	WHERE ID = @JobID
	
	Return @Result
END


SELECT ID, dbo.OwnerList(ID)
from
(
	SELECT DISTINCT ID
	FROM Jobs
) x
torbalan - Дървен философ
мдам
в тази посока ми течаха мислите... :)
но познанията ми в областта на SQL-а не са на ниво :)

осъзнавам, че по принцип е щуротия де :)
kirofabv - специалист
torbalan написа:
като почна да питам - край няма :)

имам таблица с горе-долу подобно съдържание

задача - отговорник - други полета
първа задача - пешо...
първа задача - гошо...
първа задача - тошо...
втора задача - пена...
втора задача - кина...

мога ли с една (или повече) заявка да получа резултат от типа

първа задача - пешо, гошо, тошо...
втора задача - пена, кина..

и т.н.
Йееее... задачка - закачка :)
Може, що да не може те го те как с една проста заявка:

Код: Избери всички

select 
   *задачи*,
   rtrim (xmlagg (xmlelement (e, *отговорник*|| ',')).extract ('//text()'), ',') vsichkizadachi
from 
   *таблица*
group by 
   *задачи*
Малко късно, но ми стана интересно. Дано съм бил полезен ;)
imarh - специалист
Задача:

Имам "log" таблица в която се пише с нещо от сорта:

insert into `logs` (`user`, `date`) values ($user_id, now());

Трябва ми средното време между записите за даден $user_id и то между записите, които имат разлика под 5 мин?

Тема "C#, Windows (MS) APIs, SQL - Питайте" | Включи се в дискусията:


Сподели форума:

Бъди информиран. Следвай "Направи сам" във Facebook:

Намери изпълнител и вдъхновения за дома. Следвай MaistorPlus във Facebook: