Imam sledeci problem
u storovanoj proceduri, treba da izracunam zaposlene od 20, 30, 40 itd. godina
i treba da vratim koliko ima zaposlenih do 20, od 20 do 30, od 30 do 40 ,itd godina
Moja ideja je da napravim niz od integera, koje cu vratiti u C# .. ali ne znam kako da kastujem INT u string ?? ubih se trazeci po netu, ali nista.
Evo procedure
PROCEDURE [dbo].[Zaposleni_PoStarosnojStrukturi]
@Niz nvarchar(50) OUTPUT
-- with encryption
AS
DECLARE @Ispod20 int
DECLARE @Od20do30 int
DECLARE @Od30do40 int
DECLARE @Od40do50 int
DECLARE @Od50do60 int
DECLARE @Preko60 int
BEGIN
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION;
SET @Ispod20 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) >= 0 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 20)))
SET @Od20do30 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 20 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 30)))
SET @Od30do40 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 30 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 40)))
SET @Od40do50 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 40 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 50)))
SET @Od50do60 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 50 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 60)))
SET @Preko60 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 60 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 80)))
e sada problem mi je kako ove dobijene rezultate spojiti u 1 string, i vratiti nazad ?? Probao sam ovako, ali ne vredi
SET @Niz = cast(@Ispod20 as nvarchar) +','+ cast(@Od20do30 as nvarchar) +','+ cast(@Od30do40 as nvarchar) +','+ cast(@Od40do50 as nvarchar) +','+ cast(@Od50do60 as nvarchar) +','+ cast(@Preko60 as nvarchar)
dobijam gresku tipa
Conversion failed when converting the nvarchar value '7,1,2,2,3,4' to data type int.
100 x thanks in advance .. vise nemam ideje
u storovanoj proceduri, treba da izracunam zaposlene od 20, 30, 40 itd. godina
i treba da vratim koliko ima zaposlenih do 20, od 20 do 30, od 30 do 40 ,itd godina
Moja ideja je da napravim niz od integera, koje cu vratiti u C# .. ali ne znam kako da kastujem INT u string ?? ubih se trazeci po netu, ali nista.
Evo procedure
PROCEDURE [dbo].[Zaposleni_PoStarosnojStrukturi]
@Niz nvarchar(50) OUTPUT
-- with encryption
AS
DECLARE @Ispod20 int
DECLARE @Od20do30 int
DECLARE @Od30do40 int
DECLARE @Od40do50 int
DECLARE @Od50do60 int
DECLARE @Preko60 int
BEGIN
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRANSACTION;
SET @Ispod20 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) >= 0 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 20)))
SET @Od20do30 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 20 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 30)))
SET @Od30do40 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 30 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 40)))
SET @Od40do50 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 40 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 50)))
SET @Od50do60 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 50 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 60)))
SET @Preko60 = (SELECT COUNT (OsobaID)
FROM Osoba WHERE((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) > 60 AND ((YEAR(getdate()) - YEAR(Osoba.DatumRodjenja)) <= 80)))
e sada problem mi je kako ove dobijene rezultate spojiti u 1 string, i vratiti nazad ?? Probao sam ovako, ali ne vredi
SET @Niz = cast(@Ispod20 as nvarchar) +','+ cast(@Od20do30 as nvarchar) +','+ cast(@Od30do40 as nvarchar) +','+ cast(@Od40do50 as nvarchar) +','+ cast(@Od50do60 as nvarchar) +','+ cast(@Preko60 as nvarchar)
dobijam gresku tipa
Conversion failed when converting the nvarchar value '7,1,2,2,3,4' to data type int.
100 x thanks in advance .. vise nemam ideje