Jesper Stocholm <j@stocholm.invalid> wrote in
news:Xns94B8AA41564Bstocholmdk@130.225.247.90:
> Jeg skal have lavet en stored procedure, der laver et udtræk fra en
> tabel, der returnerer en enkelt række (filter er den primære nøgle).
> Hvis felt1 er en bestemt værdi og felt2 er null, så skal der
> returneres 'd' ellers returneres ''
>
> Hvordan laver jeg det? Jeg har prøvet med
>
> CREATE PROCEDURE pn_GetTendanceLinePackageCountUnit
> @pharmacyID_ INT,
> @tendanceID_ INT,
> @tendanceLineID_ INT,
> @tendanceLineTypeID_ INT,
> @tendanceTypeIDDosis_ CHAR(3)
> AS
> SELECT
> IF t.TendanceTypeID = 'dosis' and t.FeeTypeID is null
> 'd'
> ELSE
> ''
> END
> FROM TendanceLine t
> WHERE
> t.PharmacyID = @pharmacyID_
> AND t.TendanceID = @tendanceID_
> AND t.tendanceLineID = @tendanceLineID_
> AND t.TendanceLineTypeID = @tendanceLineTypeID_
>
> Men - surprise - det virker ikke. Jeg får en syntaksfejl ved "ELSE" -
> men jeg kan ikke gennemskue hvorfor.
.... og et øjeblik efter fandt jeg svaret ...
CREATE PROCEDURE pn_GetTendanceLinePackageCountUnit
@pharmacyID_ INT,
@tendanceID_ INT,
@tendanceLineID_ INT,
@tendanceLineTypeID_ INT,
@tendanceTypeIDDosis_ CHAR(3),
@tendanceLineFeeTypeID_ CHAR(3)
AS
SELECT
'PackageCountUnit' =
CASE
WHEN t.TendanceTypeID= @tendanceTypeIDDosis_
AND t.FeeTypeID <> @tendanceLineFeeTypeID_ THEN 'd'
ELSE ''
END
FROM TendanceLine t
WHERE
t.PharmacyID = @pharmacyID_
AND t.TendanceID = @tendanceID_
AND t.tendanceLineID = @tendanceLineID_
AND t.TendanceLineTypeID = @tendanceLineTypeID_
.... beklager forstyrrelsen ...
--
Jesper Stocholm
http://stocholm.dk
Programmer's code comment:
//It probably makes more sense when you're stoned.