leer ist, ich habe die folgende SQL-AbfrageWie eine Zeile zu schreiben, die auf eine Tabelle Variable
Declare @EIDDetail Table
(inc_synopsis varchar(5000),EmployeeName varChar(50),inc_id int, acc_id int
,acc_eid int, inc_event_Number Varchar(12), inc_date_occurred_startdate,acc_afg_id int,
inc_time_occurred_start varchar(8),inc_date_recvd date,inc_date_closed date,inc_is_uof bit,
InvestigatorName VarChar(42),inc_is_comp_via_sup bit,
inc_is_comp_via_psdbit, inc_is_admin_review bit
, inc_comp_is_inquiry bit, inc_comp_is_invest bit, div_name VarChar(50), inc_comp_is_referral bit)
INSERT INTO @EIDDetail SELECT b.inc_synopsis, a.EmployeeName As AccusedName, b.inc_id, a.acc_id, a.acc_eid,
b.inc_event_number, b.inc_date_occurred_start, a.acc_afg_id, b.inc_time_occurred_start, b.inc_date_recvd, b.inc_date_closed, b.inc_is_uof,
c.InvestigatorName, b.inc_is_comp_via_sup, b.inc_is_comp_via_psd,b.inc_is_admin_review,b.inc_comp_is_inquiry,b.inc_comp_is_invest, d.div_name,
b.inc_comp_is_referral
FROM dbo.VW_ACCUSED_DISCIPLINABLE_CHARGE AS a INNER JOIN
dbo.Tbl_Incident AS b ON a.acc_inc_id = b.inc_id LEFT OUTER JOIN
dbo.VW_INCIDENT_INVESTIGATOR AS c ON b.inc_id = c.inc_id LEFT OUTER JOIN
dbo.Tbl_Division AS d ON b.inc_inv_div_id = d.div_id
WHERE
a.acc_eid IN (435,35) And (b.inc_comp_is_inquiry = 'False') AND (b.inc_deleted = 'False') OR
a.acc_eid IN (435,35) And(b.inc_deleted = 'False') AND (b.inc_comp_is_invest = 'False') OR
a.acc_eid IN (435,35) And(b.inc_deleted = 'False') AND (b.inc_comp_is_referral = 'False') OR
a.acc_eid IN (435,35) And(b.inc_deleted = 'False') AND (b.inc_is_uof = 'True')
select * from @EIDDetail
Dies funktioniert in Ordnung, bis ich einen Parameter haben, die keine Datensätze hat. Wenn das passiert, muss ich den durch den Parameter identifizierten Mitarbeiter einbeziehen und im Datensatz den Namen des Mitarbeiters und "Keine Datensätze gefunden" in meinem Synopsenfeld anzeigen.
Ich kann das anscheinend nicht herausfinden. Ich habe es versucht die ISNULL-Funktion wie diese
SELECT ISNULL((SELECT My code above)), (new select here))
Aber das gibt mir eine Fehlermeldung „Nur ein Ausdruck in der Auswahlliste angegeben werden kann, wenn die Unterabfrage nicht mit EXISTS eingeführt wird.“
Bin ich in der richtigen Position Richtung mit der ISNUll-Funktion oder gibt es eine andere Möglichkeit, dies
zu erreichen
Vielleicht können Sie klären - ist dies eine Suche, wo Sie möchten, dass ein Mitarbeiter einen Datensatz zurückgibt, aber füllen nur die Felder als EmployeeName, wenn Datensätze gefunden werden? –
Lassen Sie mich versuchen, die Situation zu klären. Ich habe eine Liste von Mitarbeiter-ID-Nummern über 1.400 in dieser Liste. Ich habe einen Bericht erstellt, der einen Parameter mit mehreren Werten verwendet, der einige Informationen zu den Mitarbeitern in meiner ID-Liste enthält. Der Repot wählt alle diese ID-Nummern aus, wenn er ausgeführt wird. Nicht alle Mitarbeiter in der Mitarbeiter-ID-Liste verfügen über Daten, über die berichtet werden kann. Ich muss diese Mitarbeiter ohne Daten in meinen Bericht aufnehmen. Es wurde der Name des Mitarbeiters angezeigt und keine Einträge angezeigt. Also ISNULL wird nicht funktionieren, @@ RowCount wird nicht funktionieren und ich habe gerade versucht, wenn EXISTEN keine funktionieren – Perry