1

このSPを使用してレポートを作成します。レポートに表示するデータがない場合は、tbl_CompanyProfileのみを表示する必要がありますが、レポートには2番目の選択からのすべてのnullフィールドが表示されます。私の懸念は、2番目の選択からnull値を非表示にして、tbl_CompanyProfileフィールドのみを表示する方法です。

SELECT Company_Name, Company_Address, Company_ContactNo, Company_Email, 
Company_Website, 'NULL' AS NAME, 'NULL' AS DATE, 0 AS AMOUNT, 
'NULL' AS DEPARTMENT, 0 AS Age, @from AS StartDate, @to AS EndDate
FROM     tbl_CompanyProfile

UNION ALL

SELECT '--' , '--' , '--' , '--' , '--' , tbl_IPD.ipd_pfname + ' ' + tbl_IPD.ipd_plname AS NAME,
CONVERT(VARCHAR, tbl_IPD.ipd_doa, 103) AS DATE, 
ISNULL(SUM(tbl_fee.fee_amount), 0) AS AMOUNT, tblDepartment.DeptName AS DEPARTMENT,
tbl_IPD.ipd_age AS Age, @from AS StartDate, @to AS EndDate
FROM     tbl_fee LEFT OUTER JOIN
tbl_IPD ON tbl_fee.ipd_id = tbl_IPD.ipd_id LEFT OUTER JOIN
tblDepartment ON tbl_IPD.ipd_dpt = tblDepartment.DeptId
WHERE  (tbl_IPD.ipd_doa BETWEEN @from AND @to)
GROUP BY tbl_IPD.ipd_pfname, tbl_IPD.ipd_plname, tbl_IPD.ipd_doa, 
tblDepartment.DeptName, tbl_IPD.ipd_age         
4

2 に答える 2

1

文字列値として「NULL」を設定しています。これは値NULLではありません。一重引用符を削除して「NULL」をNULLに変更すると、レポートには値が空白として表示されます。

于 2013-03-18T19:41:03.903 に答える
0

追加:

having SUM(tbl_fee.fee_amount) > 0

あなたの組合の2番目の選択に。

これにより、2番目の選択で行が返されなくなります。

于 2013-03-18T23:42:11.240 に答える