نمایش خروجی یک SQL بصورت یک رکورد
سلام
من یه کوری اجرا میکنم که خروجی آن شبیه به این است
bestankar |
Tdate |
103000000 |
2011-09-09 |
151000000 |
2012-08-09 |
171000000 |
2012-08-11 |
183000000 |
2011-08-09 |
حالا میخوام رکوردهای برگشتی را بصورت یک رکورد با تعداد ستونهای زیاد نمایش بدهم به اینصورت:
2011-08-09 |
183000000 |
2011-09-09 |
103000000 |
2012-08-09 |
151000000 |
2012-08-11 |
171000000 |
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
نقل قول:
نوشته شده توسط
nasr
سلام
من یه کوری اجرا میکنم که خروجی آن شبیه به این است
bestankar |
Tdate |
103000000 |
2011-09-09 |
151000000 |
2012-08-09 |
171000000 |
2012-08-11 |
183000000 |
2011-08-09 |
حالا میخوام رکوردهای برگشتی را بصورت یک رکورد با تعداد ستونهای زیاد نمایش بدهم به اینصورت:
2011-08-09 |
183000000 |
2011-09-09 |
103000000 |
2012-08-09 |
151000000 |
2012-08-11 |
171000000 |
سلام
هم میتونید از تابع PIVOT استفاده کنید هم از تابع STUFF
بهتره دیاگرام جدولها رو قرار بدین تا بهترین کوئری و مثال زد
1 ضمیمه
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
سلام
این ساختار جدول که و کوری که این خروجی را میگیرم
SELECT ISNULL(SUM(Credit),0) AS bestankar , Tdate FROM TBMohasebeTalab GROUP BY Tdate
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
لطفا یه راهی بگید
کارم گیر کرده
ممنونم
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
Table is:
+----+------+
| Id | Name |
+----+------+
| 1 | aaa |
| 1 | bbb |
| 1 | ccc |
| 1 | ddd |
| 1 | eee |
+----+------+ Required output:
+----+---------------------+
| Id | abc |
+----+---------------------+
| 1 | aaa,bbb,ccc,ddd,eee |
+----+---------------------+ Query:
SELECT ID,
abc = STUFF(
(SELECT ',' + name FROM temp1 FOR XML PATH ('')), 1, 1, ''
)
FROM temp1 GROUP BY id
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
سلام و تشکر
من به جای اینکه در یک ستون نمایش بده و بین مقادیر آن "," بگذاره نیاز دارم که هر کدوم را در یک فیلد نمایش بده
دقیقا اینطوری:
2011-08-09 |
183000000 |
2011-09-09 |
103000000 |
2012-08-09 |
151000000 |
2012-08-11 |
171000000 |
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
با عقل جور در نمیاد- با برنامه نویسی بیا اینکار را انجام بده - با TSQLE هم فکرکنم بشه
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
select *
from
(
select value, columnname
from yourtable
) d
pivot
(
max(value)
for columnname in (Firstname, Amount, PostalCode, LastName, AccountNumber)
) piv;
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
برای ارائه ی خروجی Dynamic شما به Dynamic SQL احتیاج دارید:
declare @i int = 0, @sql nvarchar(max);
select @i = @i + 1, @sql = coalesce(@sql, N'') + N',' + cast(bestankar as nvarchar) + N' as bes' + cast(@i as nvarchar) + ',cast(''' + cast(Tdate as nvarchar) + ''' as date) as date' + cast(@i as nvarchar)
from yourTable;
select @sql = N'select ' + substring(@sql, 2, 20000);
exec(@sql);
نقل قول: نمایش خروجی یک SQL بصورت یک رکورد
نقل قول:
نوشته شده توسط
Seyyed_H_T
برای ارائه ی خروجی Dynamic شما به Dynamic SQL احتیاج دارید:
declare @i int = 0, @sql nvarchar(max);
select @i = @i + 1, @sql = coalesce(@sql, N'') + N',' + cast(bestankar as nvarchar) + N' as bes' + cast(@i as nvarchar) + ',cast(''' + cast(Tdate as nvarchar) + ''' as date) as date' + cast(@i as nvarchar)
from yourTable;
select @sql = N'select ' + substring(@sql, 2, 20000);
exec(@sql);
عالی بود
دقیقا همین را میخواستم:تشویق::تشویق: