직원의 입출력 항목을 기반으로 보고서를 생성해야하는 응용 프로그램을 개발 중입니다. 동적 쿼리를 사용하는 데이터베이스 관련 응용 프로그램에 대한 경험이 없습니다. 이 특정 응용 프로그램에서 동적 SQL 쿼리를 전달해야합니다.Visual Studio의 C# 코드에서 동적 SQL을 사용합니다.
이 경우 사용자 선택에 따라 열 이름을 선택하고 매개 변수로 다른 SQL 쿼리에 전달해야합니다. 는 여기에 내가 어떻게 C# 코드에서이 코드를 사용하는 방법을 알아낼 수 없었다
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' + QUOTENAME(date +'_'+Logname)
from
(
select doordate,
convert(char(10),doordate, 101) date,
LogName
from DoorLog
cross apply
(
select 'In' LogName
union all
select 'Out'
) l
) s
group by convert(char(10), doordate, 112), date, Logname
order by convert(char(10), doordate, 112)
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query
= 'select employeeid, name, '[email protected]+'
from
(
select employeeid, name,
convert(char(8), doortime, 108) DoorTime,
date + ''_''+ col col_names
from
(
select p.employeeid,
p.name,
convert(char(10),d.doordate, 101) date,
min(d.doordate) [In],
max(d.doordate) [Out]
from person p
left join doorlog d
on p.employeeid = d.employeeid
group by p.employeeid, p.name,
convert(char(10),d.doordate, 101)
)src
unpivot
(
doortime
for col in ([In], [Out])
) unpiv
) p
pivot
(
max(doortime)
for col_names in('[email protected]+')
) piv'
execute(@query)
... 쿼리입니다.
도와주세요. 가장 좋은 방법은 쿼리를 들어오는 요청을 처리 할 수있는 데이터베이스에 저장 프로 시저를 생성하고 실행하는 것입니다
여기에 저장 프로 시저를 제안 했습니까 –
@PraveenNambiar 선생님, C# 코드에서 저장 프로 시저를 사용하는 방법? – humorousdragon