-1
Ich habe ein Problem, wie die SQL-Anweisungen (Inner Join und Union alle. Als Newbie in SQL. Hoffentlich können alle Mitglieder mir helfen, die Probleme zu lösen leave_Trx und leave_History enthalten dieselben Werte, die Union sein müssen. Danke.Kombinieren Union ALL mit Innerer Join-Anweisung
select m.name, t.startdt, t.enddt,t.noday,t.createdDT,
(case when t.approveST = 'Y' then 'Approved' when t.approveST = 'N' then 'Not Approved' else 'Pending' end) as appST
from leave_Trx t
inner join leave_MType m on m.typeID = t.trxID
inner join hr_personaldata b on b.pers_ID = @pers_ID
where year(t.startdt) = @yyear
and b.pers_ID = @pers_ID and b.pers_name LIKE '%'[email protected]_name+'%'
and b.pers_compID LIKE ''[email protected]+''
union all
select * from leave_History h
where year(h.startdt) = @yyear and h.status = 'A'
ORDER BY t.startdt
ist die 'leave_History' Tabelle sechs Spalten haben? Was ist Ihre aktuelle Ausgabe/Fehler ist? –
nicht verwenden Sie' wo Jahr (h.startdt) = @ yyear'. Siehe http://stackoverflow.com/questions/14104304/mysql-select-where-datetime-matches-day-and-not-erforderlich- Zeit, warum Sie nicht sollten – user1032531
der Fehler ist "Alle Abfragen, die mit einem UNION-, INTERSECT- oder EXCEPT-Operator kombiniert werden, müssen eine gleiche Anzahl von Ausdrücken in ihren Ziellisten enthalten." –