When running query below I got error:
Msg 208, Level 16, State 1, Line 1 Invalid object name 't'
What I am doing wrong?
My query:
SELECT
t.ACCOUNTDATE
,t.PropertyName
,isnull(t.FOODREVENUE_TODAY,0) AS FOODREVENUE_TODAY_CY,isnull(y.FOODREVENUE_TODAY,0) AS FOODREVENUE_TODAY_PY
,isnull(t.FOODREVENUE_MTOD,0) AS FOODREVENUE_MTOD_CY,isnull(y.FOODREVENUE_MTOD,0) AS FOODREVENUE_MTOD_PY
,isnull(t.FOODREVENUE_YTOD,0) AS FOODREVENUE_YTOD_CY,isnull(y.FOODREVENUE_YTOD,0) AS FOODREVENUE_YTOD_PY
,isnull(t.LIQUORREVENUE_TODAY,0) AS LIQUORREVENUE_TODAY_CY,isnull(y.LIQUORREVENUE_TODAY,0) AS LIQUORREVENUE_TODAY_PY
,isnull(t.LIQUORREVENUE_MTOD,0) AS LIQUORREVENUE_MTOD_CY,isnull(y.LIQUORREVENUE_MTOD,0) AS LIQUORREVENUE_MTOD_PY
,isnull(t.LIQUORREVENUE_YTOD,0) AS LIQUORREVENUE_YTOD_CY,isnull(y.LIQUORREVENUE_YTOD,0) AS LIQUORREVENUE_YTOD_PY
,isnull(t.SOFTDRINKSREVENUE_TODAY,0) AS SOFTDRINKSREVENUE_TODAY_CY,isnull(y.SOFTDRINKSREVENUE_TODAY,0) AS SOFTDRINKSREVENUE_TODAY_PY
,isnull(t.SOFTDRINKSREVENUE_MTOD,0) AS SOFTDRINKSREVENUE_MTOD_CY,isnull(y.SOFTDRINKSREVENUE_MTOD,0) AS SOFTDRINKSREVENUE_MTOD_PY
,isnull(t.SOFTDRINKSREVENUE_YTOD,0) AS SOFTDRINKSREVENUE_YTOD_CY,isnull(y.SOFTDRINKSREVENUE_YTOD,0) AS SOFTDRINKSREVENUE_YTOD_PY
,isnull(t.TOBACCOREVENUE_TODAY,0) AS TOBACCOREVENUE_TODAY_CY,isnull(y.TOBACCOREVENUE_TODAY,0) AS TOBACCOREVENUE_TODAY_PY
,isnull(t.TOBACCOREVENUE_MTOD,0) AS TOBACCOREVENUE_MTOD_CY,isnull(y.TOBACCOREVENUE_MTOD,0) AS TOBACCOREVENUE_MTOD_PY
,isnull(t.TOBACCOREVENUE_YTOD,0) AS TOBACCOREVENUE_YTOD_CY,isnull(y.TOBACCOREVENUE_YTOD,0) AS TOBACCOREVENUE_YTOD_PY
,isnull(t.OTHERREVENUE_TODAY,0) AS OTHERREVENUE_TODAY_CY,isnull(y.OTHERREVENUE_TODAY,0) AS OTHERREVENUE_TODAY_PY
,isnull(t.OtherRevenue_MTOD,0) AS OTHERREVENUE_MTOD_CY,isnull(y.OtherRevenue_MTOD,0) AS OTHERREVENUE_MTOD_PY
,isnull(t.OTHERREVENUE_YTOD,0) AS OTHERREVENUE_YTOD_CY,isnull(y.OTHERREVENUE_YTOD,0) AS OTHERREVENUE_YTOD_PY
,isnull(t.FOODCOVERS_TODAY,0) AS FOODCOVERS_TODAY_CY,isnull(y.FOODCOVERS_TODAY,0) AS FOODCOVERS_TODAY_PY
,isnull(t.FOODCOVERS_MTOD,0) AS FOODCOVERS_MTOD_CY,isnull(y.FOODCOVERS_MTOD,0) AS FOODCOVERS_MTOD_PY
,isnull(t.FOODCOVERS_YTOD,0) AS FOODCOVERS_YTOD_CY,isnull(y.FOODCOVERS_YTOD,0) AS FOODCOVERS_YTOD_PY
,isnull(t.LIQUORCOVERS_TODAY,0) AS LIQUORCOVERS_TODAY_CY,isnull(y.LIQUORCOVERS_TODAY,0) AS LIQUORCOVERS_TODAY_PY
,isnull(t.LIQUORCOVERS_MTOD,0) AS LIQUORCOVERS_MTOD_CY,isnull(y.LIQUORCOVERS_MTOD,0) AS LIQUORCOVERS_MTOD_PY
,isnull(t.LIQUORCOVERS_YTOD,0) AS LIQUORCOVERS_YTOD_CY,isnull(y.LIQUORCOVERS_YTOD,0) AS LIQUORCOVERS_YTOD_PY
,isnull(t.OTHERCOVERS_TODAY,0) AS OTHERCOVERS_TODAY_CY,isnull(y.OTHERCOVERS_TODAY,0) AS OTHERCOVERS_TODAY_PY
,isnull(t.OTHERCOVERS_MTOD,0) AS OTHERCOVERS_MTOD_CY,isnull(y.OTHERCOVERS_MTOD,0) AS OTHERCOVERS_MTOD_PY
,isnull(t.OTHERCOVERS_YTOD,0) AS OTHERCOVERS_YTOD_CY,isnull(y.OTHERCOVERS_YTOD,0) AS OTHERCOVERS_YTOD_PY
,isnull(t.TOBACCOCOVERS_TODAY,0) AS TOBACCOCOVERS_TODAY_CY,isnull(y.TOBACCOCOVERS_TODAY,0) AS TOBACCOCOVERS_TODAY_PY
,isnull(t.TOBACCOCOVERS_MTOD,0) AS TOBACCOCOVERS_MTOD_CY,isnull(y.TOBACCOCOVERS_MTOD,0) AS TOBACCOCOVERS_MTOD_PY
,isnull(t.TOBACCOCOVERS_YTOD,0) AS TOBACCOCOVERS_YTOD_CY,isnull(y.TOBACCOCOVERS_YTOD,0) AS TOBACCOCOVERS_YTOD_PY
FROM (select B.FullDate AS ACCOUNTDATE
,C.PropertyName
,(A.FOODREVENUE) AS FOODREVENUE_TODAY,(D.FOODREVENUE_MTOD) AS FOODREVENUE_MTOD,(D.FOODREVENUE_YTOD) AS FOODREVENUE_YTOD
,(A.LIQUORREVENUE) AS LIQUORREVENUE_TODAY,(D.LIQUORREVENUE_MTOD) AS LIQUORREVENUE_MTOD,(D.LIQUORREVENUE_YTOD) AS LIQUORREVENUE_YTOD
,(A.SOFTDRINKSREVENUE) AS SOFTDRINKSREVENUE_TODAY,(D.SOFTDRINKSREVENUE_MTOD) AS SOFTDRINKSREVENUE_MTOD,(D.SOFTDRINKSREVENUE_YTOD) AS SOFTDRINKSREVENUE_YTOD
,(A.TOBACCOREVENUE) AS TOBACCOREVENUE_TODAY,(D.TOBACCOREVENUE_MTOD) AS TOBACCOREVENUE_MTOD,(D.TOBACCOREVENUE_YTOD) AS TOBACCOREVENUE_YTOD
,(A.OtherRevenue) AS OTHERREVENUE_TODAY,(D.OtherRevenue_MTOD) AS OTHERREVENUE_MTOD,(D.OTHERREVENUE_YTOD) AS OTHERREVENUE_YTOD
,(A.FOODCOVERS) AS FOODCOVERS_TODAY,(D.FOODCOVERS_MTOD) AS FOODCOVERS_MTOD,(D.FOODCOVERS_YTOD) AS FOODCOVERS_YTOD
,(A.LIQUORCOVERS) AS LIQUORCOVERS_TODAY,(D.LIQUORCOVERS_MTOD) AS LIQUORCOVERS_MTOD,(D.LIQUORCOVERS_YTOD) AS LIQUORCOVERS_YTOD
,(A.OTHERCOVERS) AS OTHERCOVERS_TODAY,(D.OTHERCOVERS_MTOD) AS OTHERCOVERS_MTOD,(D.OTHERCOVERS_YTOD) AS OTHERCOVERS_YTOD
,(A.TOBACCOCOVERS) AS TOBACCOCOVERS_TODAY,(D.TOBACCOCOVERS_MTOD) AS TOBACCOCOVERS_MTOD,(D.TOBACCOCOVERS_YTOD) AS TOBACCOCOVERS_YTOD
FROM Fact_MisCovers A
INNER JOIN DimDate B ON A.Datekey=B.DateKey
INNER JOIN Dim_MisCovers C ON A.Fact_MisCovers_id=C.Dim_MisCovers_id
INNER JOIN Fact_MisCovers D ON a.Fact_MisCovers_id=d.Fact_MisCovers_id) as t
LEFT JOIN t as y
ON DATEADD(YEAR,-1,t.ACCOUNTDATE) = y.ACCOUNTDATE
order by t.ACCOUNTDATE
Put your query in CTE, then select from it like:
;WITH cte AS (
(select B.FullDate AS ACCOUNTDATE
,C.PropertyName
,(A.FOODREVENUE) AS FOODREVENUE_TODAY,(D.FOODREVENUE_MTOD) AS FOODREVENUE_MTOD,(D.FOODREVENUE_YTOD) AS FOODREVENUE_YTOD
,(A.LIQUORREVENUE) AS LIQUORREVENUE_TODAY,(D.LIQUORREVENUE_MTOD) AS LIQUORREVENUE_MTOD,(D.LIQUORREVENUE_YTOD) AS LIQUORREVENUE_YTOD
,(A.SOFTDRINKSREVENUE) AS SOFTDRINKSREVENUE_TODAY,(D.SOFTDRINKSREVENUE_MTOD) AS SOFTDRINKSREVENUE_MTOD,(D.SOFTDRINKSREVENUE_YTOD) AS SOFTDRINKSREVENUE_YTOD
,(A.TOBACCOREVENUE) AS TOBACCOREVENUE_TODAY,(D.TOBACCOREVENUE_MTOD) AS TOBACCOREVENUE_MTOD,(D.TOBACCOREVENUE_YTOD) AS TOBACCOREVENUE_YTOD
,(A.OtherRevenue) AS OTHERREVENUE_TODAY,(D.OtherRevenue_MTOD) AS OTHERREVENUE_MTOD,(D.OTHERREVENUE_YTOD) AS OTHERREVENUE_YTOD
,(A.FOODCOVERS) AS FOODCOVERS_TODAY,(D.FOODCOVERS_MTOD) AS FOODCOVERS_MTOD,(D.FOODCOVERS_YTOD) AS FOODCOVERS_YTOD
,(A.LIQUORCOVERS) AS LIQUORCOVERS_TODAY,(D.LIQUORCOVERS_MTOD) AS LIQUORCOVERS_MTOD,(D.LIQUORCOVERS_YTOD) AS LIQUORCOVERS_YTOD
,(A.OTHERCOVERS) AS OTHERCOVERS_TODAY,(D.OTHERCOVERS_MTOD) AS OTHERCOVERS_MTOD,(D.OTHERCOVERS_YTOD) AS OTHERCOVERS_YTOD
,(A.TOBACCOCOVERS) AS TOBACCOCOVERS_TODAY,(D.TOBACCOCOVERS_MTOD) AS TOBACCOCOVERS_MTOD,(D.TOBACCOCOVERS_YTOD) AS TOBACCOCOVERS_YTOD
FROM Fact_MisCovers A
INNER JOIN DimDate B ON A.Datekey=B.DateKey
INNER JOIN Dim_MisCovers C ON A.Fact_MisCovers_id=C.Dim_MisCovers_id
INNER JOIN Fact_MisCovers D ON a.Fact_MisCovers_id=d.Fact_MisCovers_id)
)
SELECT
t.ACCOUNTDATE
,t.PropertyName
,isnull(t.FOODREVENUE_TODAY,0) AS FOODREVENUE_TODAY_CY,isnull(y.FOODREVENUE_TODAY,0) AS FOODREVENUE_TODAY_PY
,isnull(t.FOODREVENUE_MTOD,0) AS FOODREVENUE_MTOD_CY,isnull(y.FOODREVENUE_MTOD,0) AS FOODREVENUE_MTOD_PY
,isnull(t.FOODREVENUE_YTOD,0) AS FOODREVENUE_YTOD_CY,isnull(y.FOODREVENUE_YTOD,0) AS FOODREVENUE_YTOD_PY
,isnull(t.LIQUORREVENUE_TODAY,0) AS LIQUORREVENUE_TODAY_CY,isnull(y.LIQUORREVENUE_TODAY,0) AS LIQUORREVENUE_TODAY_PY
,isnull(t.LIQUORREVENUE_MTOD,0) AS LIQUORREVENUE_MTOD_CY,isnull(y.LIQUORREVENUE_MTOD,0) AS LIQUORREVENUE_MTOD_PY
,isnull(t.LIQUORREVENUE_YTOD,0) AS LIQUORREVENUE_YTOD_CY,isnull(y.LIQUORREVENUE_YTOD,0) AS LIQUORREVENUE_YTOD_PY
,isnull(t.SOFTDRINKSREVENUE_TODAY,0) AS SOFTDRINKSREVENUE_TODAY_CY,isnull(y.SOFTDRINKSREVENUE_TODAY,0) AS SOFTDRINKSREVENUE_TODAY_PY
,isnull(t.SOFTDRINKSREVENUE_MTOD,0) AS SOFTDRINKSREVENUE_MTOD_CY,isnull(y.SOFTDRINKSREVENUE_MTOD,0) AS SOFTDRINKSREVENUE_MTOD_PY
,isnull(t.SOFTDRINKSREVENUE_YTOD,0) AS SOFTDRINKSREVENUE_YTOD_CY,isnull(y.SOFTDRINKSREVENUE_YTOD,0) AS SOFTDRINKSREVENUE_YTOD_PY
,isnull(t.TOBACCOREVENUE_TODAY,0) AS TOBACCOREVENUE_TODAY_CY,isnull(y.TOBACCOREVENUE_TODAY,0) AS TOBACCOREVENUE_TODAY_PY
,isnull(t.TOBACCOREVENUE_MTOD,0) AS TOBACCOREVENUE_MTOD_CY,isnull(y.TOBACCOREVENUE_MTOD,0) AS TOBACCOREVENUE_MTOD_PY
,isnull(t.TOBACCOREVENUE_YTOD,0) AS TOBACCOREVENUE_YTOD_CY,isnull(y.TOBACCOREVENUE_YTOD,0) AS TOBACCOREVENUE_YTOD_PY
,isnull(t.OTHERREVENUE_TODAY,0) AS OTHERREVENUE_TODAY_CY,isnull(y.OTHERREVENUE_TODAY,0) AS OTHERREVENUE_TODAY_PY
,isnull(t.OtherRevenue_MTOD,0) AS OTHERREVENUE_MTOD_CY,isnull(y.OtherRevenue_MTOD,0) AS OTHERREVENUE_MTOD_PY
,isnull(t.OTHERREVENUE_YTOD,0) AS OTHERREVENUE_YTOD_CY,isnull(y.OTHERREVENUE_YTOD,0) AS OTHERREVENUE_YTOD_PY
,isnull(t.FOODCOVERS_TODAY,0) AS FOODCOVERS_TODAY_CY,isnull(y.FOODCOVERS_TODAY,0) AS FOODCOVERS_TODAY_PY
,isnull(t.FOODCOVERS_MTOD,0) AS FOODCOVERS_MTOD_CY,isnull(y.FOODCOVERS_MTOD,0) AS FOODCOVERS_MTOD_PY
,isnull(t.FOODCOVERS_YTOD,0) AS FOODCOVERS_YTOD_CY,isnull(y.FOODCOVERS_YTOD,0) AS FOODCOVERS_YTOD_PY
,isnull(t.LIQUORCOVERS_TODAY,0) AS LIQUORCOVERS_TODAY_CY,isnull(y.LIQUORCOVERS_TODAY,0) AS LIQUORCOVERS_TODAY_PY
,isnull(t.LIQUORCOVERS_MTOD,0) AS LIQUORCOVERS_MTOD_CY,isnull(y.LIQUORCOVERS_MTOD,0) AS LIQUORCOVERS_MTOD_PY
,isnull(t.LIQUORCOVERS_YTOD,0) AS LIQUORCOVERS_YTOD_CY,isnull(y.LIQUORCOVERS_YTOD,0) AS LIQUORCOVERS_YTOD_PY
,isnull(t.OTHERCOVERS_TODAY,0) AS OTHERCOVERS_TODAY_CY,isnull(y.OTHERCOVERS_TODAY,0) AS OTHERCOVERS_TODAY_PY
,isnull(t.OTHERCOVERS_MTOD,0) AS OTHERCOVERS_MTOD_CY,isnull(y.OTHERCOVERS_MTOD,0) AS OTHERCOVERS_MTOD_PY
,isnull(t.OTHERCOVERS_YTOD,0) AS OTHERCOVERS_YTOD_CY,isnull(y.OTHERCOVERS_YTOD,0) AS OTHERCOVERS_YTOD_PY
,isnull(t.TOBACCOCOVERS_TODAY,0) AS TOBACCOCOVERS_TODAY_CY,isnull(y.TOBACCOCOVERS_TODAY,0) AS TOBACCOCOVERS_TODAY_PY
,isnull(t.TOBACCOCOVERS_MTOD,0) AS TOBACCOCOVERS_MTOD_CY,isnull(y.TOBACCOCOVERS_MTOD,0) AS TOBACCOCOVERS_MTOD_PY
,isnull(t.TOBACCOCOVERS_YTOD,0) AS TOBACCOCOVERS_YTOD_CY,isnull(y.TOBACCOCOVERS_YTOD,0) AS TOBACCOCOVERS_YTOD_PY
FROM cte t
LEFT JOIN cte as y
ON DATEADD(YEAR,-1,t.ACCOUNTDATE) = y.ACCOUNTDATE
order by t.ACCOUNTDATE
Related
I want to ask, Why can I use the first SQL command, the second fails?
Note: Error occurs when data is empty
Success
$barang = KeluarTmp::LeftJoin('data_barang', function($join){
$join->on('data_barang.kode_barang','=','barang_keluar_tmp.kode');
})->leftjoin('data_jasa','barang_keluar_tmp.kode','=','data_jasa.kode_jasa')
->WHERE('barang_keluar_tmp.keterangan', $user)
->orderBy('barang_keluar_tmp.created_at','ASC')
->get(['barang_keluar_tmp.id as id',
'data_barang.nama_barang as nama_barang',
'barang_keluar_tmp.kode as kode_barang',
'barang_keluar_tmp.qty as jumlah',
'barang_keluar_tmp.total_harga as total_harga',
'barang_keluar_tmp.total_harga_awal as total_harga_awal',
'data_jasa.nama_jasa as nama_jasa',
'barang_keluar_tmp.diskon as diskon'
]);
Error Devision Zero
$barang = DB::select('SELECT barang_keluar_tmp.id as id, data_barang.nama_barang as nama_barang, barang_keluar_tmp.kode as kode_barang, barang_keluar_tmp.qty as jumlah, barang_keluar_tmp.total_harga as total_harga, barang_keluar_tmp.total_harga_awal as total_harga_awal, data_jasa.nama_jasa as nama_jasa, barang_keluar_tmp.diskon as diskon, SUM(h.masuk - (i.keluar + barang_keluar_tmp.qty)) as stok
FROM barang_keluar_tmp
JOIN data_barang on data_barang.kode_barang = barang_keluar_tmp.kode
LEFT JOIN data_jasa on barang_keluar_tmp.kode = data_jasa.kode_jasa
LEFT JOIN
(SELECT barang_masuk.kode_barang, SUM(barang_masuk.qty) as masuk from barang_masuk group by barang_masuk.kode_barang)
AS h ON barang_keluar_tmp.kode = h.kode_barang
LEFT JOIN
(SELECT barang_keluar.kode, SUM(barang_keluar.qty) as keluar from barang_keluar group by barang_keluar.kode)
AS i ON barang_keluar_tmp.kode = i.kode
WHERE barang_keluar_tmp.keterangan = "'.$user.'"
ORDER By barang_keluar_tmp.created_at ASC');
use coalesce() on sum()
SELECT barang_keluar_tmp.id as id
, data_barang.nama_barang as nama_barang
, barang_keluar_tmp.kode as kode_barang
, barang_keluar_tmp.qty as jumlah
, barang_keluar_tmp.total_harga as total_harga
, barang_keluar_tmp.total_harga_awal as total_harga_awal
, data_jasa.nama_jasa as nama_jasa, barang_keluar_tmp.diskon as diskon
, SUM(coalesce(h.masuk, 0) - coalesce((i.keluar + barang_keluar_tmp.qty), 0)) as stok
FROM barang_keluar_tmp
JOIN data_barang on data_barang.kode_barang = barang_keluar_tmp.kode
LEFT JOIN data_jasa on barang_keluar_tmp.kode = data_jasa.kode_jasa
LEFT JOIN
(SELECT barang_masuk.kode_barang
, SUM(barang_masuk.qty) as masuk
from barang_masuk
group by barang_masuk.kode_barang)
AS h ON barang_keluar_tmp.kode = h.kode_barang
LEFT JOIN
(SELECT barang_keluar.kode, SUM(barang_keluar.qty) as keluar
from barang_keluar
group by barang_keluar.kode)
AS i ON barang_keluar_tmp.kode = i.kode
WHERE barang_keluar_tmp.keterangan = "'.$user.'"
ORDER By barang_keluar_tmp.created_at ASC
I have a problem with a dynamic parameter in Power Query. There's the code:
let
Parametro = Excel.CurrentWorkbook(){[Name="Parametro"]}[Content],
InicioExec_Valor = Parametro{0}[Valor],
FimExec_Valor = Parametro{1}[Valor],
Fonte = Sql.Database("DATABASE", "TABLE", [Query="select#(lf)#(lf)o.cd_controle, exe.nm_pessoa AS Executante, o.numero AS OM, #(lf)CONVERT(nvarchar(10), o.dt_abertura, 103) AS Abertura,#(lf)o.medidor Horimetro_OM,#(lf)p.nm_pessoa AS Cliente, #(lf)e.nm_equipto AS Equipamento, pat.nr_patrimonio AS Patrimonio, #(lf)CONVERT(nvarchar(10), o.dt_autoriz_execucao, 103) AS Inicio_Exec, #(lf)CONVERT(nvarchar(10), o.dt_encos_oficina, 103) AS Fim_Exec, Z.nm_apelido AS Unidade, #(lf)CASE WHEN fl_preventiva = 'C' THEN 'Corretiva' #(lf)WHEN fl_preventiva = 'P' then 'PREVENTIVA'#(lf)WHEN fl_preventiva = 'R' then 'INSPEÇÃO RESUMIDA'#(lf)WHEN fl_preventiva = 'V' then 'INSPEÇÃO PREVENTIVA'#(lf)WHEN fl_preventiva = 'E' then 'ENTREGA TÉCNICA'#(lf)else 'Indefinido' end AS 'Corret_Preven'#(lf),CONVERT(nvarchar(10), fl_remessa.dt_saida, 103) AS DataSaida#(lf),fl_rem_equ.vl_medidor Horimetro_Remessa#(lf),CONVERT(nvarchar(10), o.dt_abertura, 103) AS Abertura#(lf),o.medidor Horimetro_OM#(lf)#(lf)from orcos o#(lf)inner join controle c on (c.cd_controle = o.cd_controle)#(lf)inner join wcore_oid oid on (oid.cd_oid = c.cd_oid)#(lf)left outer join empresa AS Z ON Z.cd_empresa = o.cd_empresa #(lf)left outer join equipto e on (e.cd_equipto = o.cd_equipto)#(lf)left outer join pessoa f on (f.cd_pessoa = o.cd_pessoa_tec)#(lf)left outer join pessoa p on (p.cd_pessoa = o.cd_pessoa)#(lf)left outer join pessoa exe on (exe.cd_pessoa = o.cd_pessoa_exe)#(lf)left outer join patrimon pat on (pat.cd_patrimonio = o.cd_patrimonio)#(lf)left outer join est_almox x on x.cd_almox = pat.cd_almox#(lf)left outer join empresa emp on emp.cd_empresa = o.cd_empresa_origem #(lf)#(lf)left outer JOIN dbo.fich_loc ON (fich_loc.cd_controle= o.cd_controle_loc)#(lf)left outer JOIN dbo.fl_remessa fl_remessa ON (fl_remessa.cd_controle = dbo.fich_loc.cd_controle)#(lf)#(lf)INNER JOIN(select max(fl_remessa.cd_flremessa)cd_flremessa, A.cd_controle #(lf)#(tab)#(tab)#(tab)#(tab)#(tab) from dbo.fl_remessa#(lf)#(tab)#(tab)#(tab)#(tab)#(tab) inner join dbsislocsalvador..fich_loc on (fl_remessa.cd_controle = dbo.fich_loc.cd_controle)#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) inner join dbsislocsalvador..orcos a on (fich_loc.cd_controle= A.cd_controle_loc#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) and fl_remessa.dt_saida<=a.dt_abertura) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) inner join controle c on (c.cd_controle = A.cd_controle)#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) left outer join patrimon pat on (pat.cd_patrimonio = a.cd_patrimonio)#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) LEFT OUTER JOIN dbo.fl_rem_equ AS fl_rem_equ ON pat.cd_patrimonio = fl_rem_equ.cd_patrimonio AND fl_remessa.cd_flremessa = fl_rem_equ.cd_flremessa#(lf) #(tab)#(tab) left outer JOIN dbo.loc_flremequ_xplano AS loc_flremequ_xplano ON loc_flremequ_xplano.cd_flremequ = fl_rem_equ.cd_flremequ #(lf) #(tab)#(tab)#(tab) left outer JOIN dbo.equipto AS equipto ON fl_rem_equ.cd_equipto = equipto.cd_equipto#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) where #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) ((NOT EXISTS(select top 1 * from config_tag_xoid)) OR (c.cd_oid not in (select txo.cd_oid from #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) (select * from ( select cd_tag, nm_tag , (30) as fl_acesso from config_tag t where t.fl_ativo in ('S') ) tags #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) WHERE (fl_acesso = 10) ) tags inner join config_tag_xoid txo on tags.cd_tag = txo.cd_tag where 3=3 /*filter_tag_clause*/ #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) group by txo.cd_oid))) and ( ( (a.cd_controle_loc is not null and a.cd_fldevolucao is null) ) ) and#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) (a.cd_empresa IN (24,45,5,46,20,29,43,15,48,10,1,22,8,34,49,9,47,52,7)) and ( ( a.cd_local is null or a.cd_local in (0,1,2,3,5,6,7,8,9) ) ) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) AND (a.cd_controle_loc IS NOT NULL) AND (a.cd_fldevolucao IS NULL) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) and (a.fl_preventiva in ('C', 'P', 'R', 'V', 'E')) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) and (equipto.cd_grupo in (1478, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1491, 1492, 1548, 1549))#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) group by a.cd_controle) AS fl_remessa_max #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) ON fl_remessa.cd_flremessa = fl_remessa_max.cd_flremessa#(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) and fl_remessa_max.cd_controle = o.cd_controle #(lf)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) #(lf)LEFT OUTER JOIN dbo.fl_rem_equ AS fl_rem_equ ON pat.cd_patrimonio = fl_rem_equ.cd_patrimonio AND fl_remessa.cd_flremessa = fl_rem_equ.cd_flremessa#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab)#(tab) #(lf)left outer JOIN dbo.equipto AS equipto ON fl_rem_equ.cd_equipto = equipto.cd_equipto#(lf) #(tab)#(tab)#(tab)#(tab)#(tab) #(lf)WHERE ((NOT EXISTS(select top 1 * from config_tag_xoid)) OR (c.cd_oid not in (select txo.cd_oid from #(lf)(select * from ( select cd_tag, nm_tag , (30) as fl_acesso from config_tag t where t.fl_ativo in ('S') ) tags #(lf)WHERE (fl_acesso = 10) ) tags inner join config_tag_xoid txo on tags.cd_tag = txo.cd_tag where 3=3 /*filter_tag_clause*/ #(lf)group by txo.cd_oid))) and ( ( (o.cd_controle_loc is not null and o.cd_fldevolucao is null) ) ) and#(lf)(o.cd_empresa IN (24,45,5,46,20,29,43,15,48,10,1,22,8,34,49,9,47,52,7)) and ( ( o.cd_local is null or o.cd_local in (0,1,2,3,5,6,7,8,9) ) ) #(lf)AND (o.cd_controle_loc IS NOT NULL) AND (o.cd_fldevolucao IS NULL) #(lf)and (o.fl_preventiva in ('C', 'P', 'R', 'V', 'E')) #(lf)and (equipto.cd_grupo in (1478, 1480, 1481, 1482, 1483, 1484, 1485, 1486, 1487, 1488, 1491, 1492, 1548, 1549))"]),
#"Tipo Alterado" = Table.TransformColumnTypes(Fonte,{{"Abertura", type date}, {"Inicio_Exec", type date}, {"Fim_Exec", type date}, {"DataSaida", type date}}),
#"Colunas Removidas" = Table.RemoveColumns(#"Tipo Alterado",{"cd_controle", "Horimetro_OM2", "Abertura2"}),
#"Filtro Datas" = Table.SelectRows(#"Colunas Removidas", each [Fim_Exec] >= InicioExec_Valor and [Fim_Exec] <= FimExec_Valor)
in
#"Filtro Datas"
And occur that error:
Expression.Error: Não conseguimos aplicar o operador < aos tipos
Number e Date. Detalhes:
Operator=<
Left=42795
Right=01/06/2007
How can I solve that?
Note: MY PARAMETER (01/03/2017) ARE FORMATED AS TEXT.
Although I don't read Spanish, looks like it says you cannot compare number and date with < operator.
It is good practice, by the way, to first convert parameters to the proper type:
InicioExec_Valor = Date.From(Parametro{0}[Valor]),
FimExec_Valor = Date.From(Parametro{1}[Valor]),`
Try this.
If it won't work, determine step that generates error by clicking them one-by-one.
There is more I wonder about. Why do you convert Fim_Exec to nvarchar and then to date?
1. #(lf)CONVERT(nvarchar(10), o.dt_encos_oficina, 103) AS Fim_Exec
2. {"Fim_Exec", type date},
Why don't use Fim_Exec = CAST(o.dt_encos_oficina as date)? (or datetime, depending on SQL Server version) in the query?
Same applies to other columns.
Next, it is best practice not to use native queries unless absolutely required.
And, yes, this is largest and most complex query I've seen up to date. :)
I have the following query. I'm not sure why it says the error in the title. I marked where is the error.
SELECT cmp.idcampanie,
spt.idspot,
spt.alias,
perioada =
(SELECT perioada
FROM dbo.tf_formatperioada(spt.datainceput, spt.datasfarsit)),
tipprogramare = tipprg.nume,
ora =
(SELECT ora
FROM dbo.tf_formatora(spt.ora, 0)),
spt.aliasex,
durata =
(SELECT durata
FROM dbo.tf_formatdurata(spt.durata)),
spt.coststandard,
spt.cost,
spt.nrdifuzari,
spt.valoare
FROM dbo.campanii AS cmp CROSS apply
(SELECT idspot, ALIAS, datainceput, datasfarsit, orafixa, tipprogramare, ora, aliasex, durata, coststandard, cost, nrdifuzari = sum(nrdifuzari), valoare = sum(valoare)
FROM dbo.tf_costurispoturi(cmp.idgrupmedia, cmp.idcampanie, cmp.datainceput, cmp.datasfarsit, cmp.idoferta, cmp.coeficienticostduratespoturi, cmp.coeficientcost, NULL)
WHERE idcanalmedia IS NOT NULL
GROUP BY idspot, ALIAS, datainceput, datasfarsit, orafixa, tipprogramare, ora, aliasex, durata, coststandard, cost) AS spt
INNER JOIN dbo.tipuriprogramari AS tipprg ON tipprg.orafixa = spt.orafixa
AND tipprg.tipprogramare = spt.tipprogramare
WHERE cmp.idgrupmedia = 1
AND cmp.datainceput <= '5.01.2014'
AND cmp.datasfarsit >= '5.30.2014'
ORDER BY cmp.idcampanie ASC,
spt.ALIAS ASC, spt.ora **AS spt** COMPUTE spt AS sptdtl BY idcampanie,
idspot,
ALIAS,
perioada,
tipprogramare) RELATE idcampanie TO idcampanie) AS spt
it gives error in order by
ORDER BY
cmp.idcampanie ASC,
spt.ALIAS ASC,
--spt.ora **AS spt** COMPUTE spt AS sptdtl
BY idcampanie,
idspot,
ALIAS,
perioada,
tipprogramare
)
RELATE idcampanie TO idcampanie) AS spt
Except this query is not give error, see query as below.
SELECT cmp.idcampanie,
spt.idspot,
spt.alias,
perioada = (SELECT perioada
FROM dbo.Tf_formatperioada(spt.datainceput,
spt.datasfarsit)),
tipprogramare = tipprg.nume,
ora = (SELECT ora
FROM dbo.Tf_formatora(spt.ora, 0)),
spt.aliasex,
durata = (SELECT durata
FROM dbo.Tf_formatdurata(spt.durata)),
spt.coststandard,
spt.cost,
spt.nrdifuzari,
spt.valoare
FROM dbo.campanii AS cmp
CROSS apply (SELECT idspot,
alias,
datainceput,
datasfarsit,
orafixa,
tipprogramare,
ora,
aliasex,
durata,
coststandard,
cost,
nrdifuzari = Sum(nrdifuzari),
valoare = Sum(valoare)
FROM dbo.Tf_costurispoturi(cmp.idgrupmedia,
cmp.idcampanie,
cmp.datainceput,
cmp.datasfarsit, cmp.idoferta,
cmp.coeficienticostduratespoturi,
cmp.coeficientcost,
NULL)
WHERE idcanalmedia IS NOT NULL
GROUP BY idspot,
alias,
datainceput,
datasfarsit,
orafixa,
tipprogramare,
ora,
aliasex,
durata,
coststandard,
cost) AS spt
INNER JOIN dbo.tipuriprogramari AS tipprg
ON tipprg.orafixa = spt.orafixa
AND tipprg.tipprogramare = spt.tipprogramare
WHERE cmp.idgrupmedia = 1
AND cmp.datainceput <= '5.01.2014'
AND cmp.datasfarsit >= '5.30.2014'
I'm getting the error:
syntax error (missing operator) in query expression '((dbo_tblBidder.bidder_sale_id = dbo_tblSale.sale_id) AND (dbo_tblSale.sale_id IN (319))) LEFT JOIN
dbo_tblItem ON ((dbo_tblBidder.bidder_sale_id = dbo_tblItem.item_sale_id) AND (dbo_tblBidder.bidder_number = dbo_tblItem.item_bidder_number)'.
I've had this issue before and know that it doesn't like my parenthesis setup, but nothing I do seems to make MS Access happy.
SELECT dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, dbo_tblBidder.bidder_number, SUM(dbo_tblItem.item_pr) AS SumOfitem_pr, SUM(dbo_tblItem.item_premium)
AS SumOfitem_premium, dbo_tblBidder.bidder_type, dbo_tblSale.sale_id
FROM (dbo_tblMailList LEFT JOIN
dbo_tblBidder ON ((dbo_tblMailList.mail_ID = dbo_tblBidder.bidder_mail_id) AND (dbo_tblBidder.bidder_sale_id IN (319)))) LEFT JOIN
dbo_tblSale ON ((dbo_tblBidder.bidder_sale_id = dbo_tblSale.sale_id) AND (dbo_tblSale.sale_id IN (319))) LEFT JOIN
dbo_tblItem ON ((dbo_tblBidder.bidder_sale_id = dbo_tblItem.item_sale_id) AND (dbo_tblBidder.bidder_number = dbo_tblItem.item_bidder_number))
GROUP BY dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, dbo_tblBidder.bidder_number, dbo_tblBidder.bidder_type, dbo_tblMailList.mail_Comp_Art,
dbo_tblMailList.mail_Comp_IndArt, dbo_tblMailList.mail_Comp_Fire, dbo_tblMailList.mail_Comp_Ceramic, dbo_tblSale.sale_id
HAVING (dbo_tblMailList.mail_Comp_GenAm = 1)
If anyone has any ideas, please let me know.
Thanks,
James
EDIT
Using Gareth's FROM clause below I now have:
SELECT dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, dbo_tblBidder.bidder_number, SUM(dbo_tblItem.item_pr) AS SumOfitem_pr, SUM(dbo_tblItem.item_premium)
AS SumOfitem_premium, dbo_tblBidder.bidder_type, dbo_tblSale.sale_id
FROM (
( dbo_tblMailList
LEFT JOIN dbo_tblBidder
ON dbo_tblMailList.mail_ID = dbo_tblBidder.bidder_mail_id
AND dbo_tblBidder.bidder_sale_id IN (319)
)
LEFT JOIN dbo_tblSale
ON dbo_tblBidder.bidder_sale_id = dbo_tblSale.sale_id
)
LEFT JOIN dbo_tblItem
ON dbo_tblBidder.bidder_sale_id = dbo_tblItem.item_sale_id
AND dbo_tblBidder.bidder_number = dbo_tblItem.item_bidder_number
GROUP BY dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, dbo_tblBidder.bidder_number, dbo_tblBidder.bidder_type, dbo_tblMailList.mail_Comp_Art,
dbo_tblMailList.mail_Comp_IndArt, dbo_tblMailList.mail_Comp_Fire, dbo_tblMailList.mail_Comp_Ceramic, dbo_tblSale.sale_id
HAVING (dbo_tblMailList.mail_Comp_GenAm = 1)
But I am getting the error Extra ) in query expression ''.
I think it may have something to do with AND dbo_tblBidder.bidder_sale_id IN (319). If I change this to AND dbo_tblBidder.bidder_sale_id = 319, I get the error:
JOIN expression not supported.
And it highlights the dbo_tblBidder.bidder_sale_id = 319.
CONCLUSION
Here is my final working code:
SELECT mail_ID, mail_FirstName, mail_LastName, mail_Address1, mail_Address2,
mail_City, mail_State, mail_Zip, mail_Phone1, mail_Email1,
mail_Comp_GenAm, SUM(SumOfitem_pr) AS SumOfitem_price, SUM(SumOfitem_premium) AS SumOfitem_premiums
FROM (
SELECT dbo_tblMailList.mail_ID, dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, SUM(dbo_tblItem.item_pr) AS SumOfitem_pr, SUM(dbo_tblItem.item_premium)
AS SumOfitem_premium
FROM (
( dbo_tblMailList
LEFT JOIN dbo_tblBidder
ON dbo_tblMailList.mail_ID = dbo_tblBidder.bidder_mail_id
)
LEFT JOIN dbo_tblSale
ON dbo_tblBidder.bidder_sale_id = dbo_tblSale.sale_id
)
LEFT JOIN dbo_tblItem
ON dbo_tblBidder.bidder_sale_id = dbo_tblItem.item_sale_id
AND dbo_tblBidder.bidder_number = dbo_tblItem.item_bidder_number
WHERE dbo_tblMailList.mail_Comp_GenAm = 1 AND dbo_tblBidder.bidder_sale_id IN (319)
GROUP BY dbo_tblMailList.mail_ID, dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, dbo_tblMailList.mail_Comp_Art,
dbo_tblMailList.mail_Comp_IndArt, dbo_tblMailList.mail_Comp_Fire, dbo_tblMailList.mail_Comp_Ceramic
UNION
SELECT dbo_tblMailList.mail_ID, dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, 0 AS SumOfitem_pr, 0
AS SumOfitem_premium
FROM (
( dbo_tblMailList
LEFT JOIN dbo_tblBidder
ON dbo_tblMailList.mail_ID = dbo_tblBidder.bidder_mail_id
)
LEFT JOIN dbo_tblSale
ON dbo_tblBidder.bidder_sale_id = dbo_tblSale.sale_id
)
LEFT JOIN dbo_tblItem
ON dbo_tblBidder.bidder_sale_id = dbo_tblItem.item_sale_id
AND dbo_tblBidder.bidder_number = dbo_tblItem.item_bidder_number
WHERE dbo_tblMailList.mail_Comp_GenAm = 1
GROUP BY dbo_tblMailList.mail_ID, dbo_tblMailList.mail_FirstName, dbo_tblMailList.mail_LastName, dbo_tblMailList.mail_Address1, dbo_tblMailList.mail_Address2,
dbo_tblMailList.mail_City, dbo_tblMailList.mail_State, dbo_tblMailList.mail_Zip, dbo_tblMailList.mail_Phone1, dbo_tblMailList.mail_Email1,
dbo_tblMailList.mail_Comp_GenAm, dbo_tblMailList.mail_Comp_Art,
dbo_tblMailList.mail_Comp_IndArt, dbo_tblMailList.mail_Comp_Fire, dbo_tblMailList.mail_Comp_Ceramic
)
GROUP BY mail_ID, mail_FirstName, mail_LastName, mail_Address1, mail_Address2,
mail_City, mail_State, mail_Zip, mail_Phone1, mail_Email1,
mail_Comp_GenAm, SumOfitem_price, SumOfitem_premiums
Thanks Gareth!
In access you cannot have multiple joins without separating them with parentheses, i.e.
SELECT *
FROM A
INNER JOIN B
ON A.ID = B.AID
INNER JOIN C
ON B.ID = C.BID;
Is not valid, it would need to be:
SELECT *
FROM (A
INNER JOIN B
ON A.ID = B.AID)
INNER JOIN C
ON B.ID = C.BID;
So, your from clause would need to be:
FROM (
( dbo_tblMailList
LEFT JOIN dbo_tblBidder
ON dbo_tblMailList.mail_ID = dbo_tblBidder.bidder_mail_id
AND dbo_tblBidder.bidder_sale_id IN (319)
)
LEFT JOIN dbo_tblSale
ON dbo_tblBidder.bidder_sale_id = dbo_tblSale.sale_id)
AND dbo_tblSale.sale_id IN (319)
)
LEFT JOIN dbo_tblItem
ON dbo_tblBidder.bidder_sale_id = dbo_tblItem.item_sale_id
AND dbo_tblBidder.bidder_number = dbo_tblItem.item_bidder_number
N.B I have removed all the unnecessary parentheses from the joins to reduce the clutter in the query (it is not necessary to enclose every predicate in parentheses), and exaggerated the tab indentations to show clearly where parentheses open and close
EDIT
I forgot, you cannot apply the constant expression in the JOIN clause in Access, you would need to create a subselect,
dbo_tblMailList
LEFT JOIN dbo_tblBidder
ON dbo_tblMailList.mail_ID = dbo_tblBidder.bidder_mail_id
AND dbo_tblBidder.bidder_sale_id IN (319)
You would need to do
dbo_tblMailList AS m
LEFT JOIN (SELECT * FROM dbo_tblBidder WHERE bidder_sale_id IN (319)) AS b
ON m.mail_ID = b.bidder_mail_id
So your full query would be:
SELECT m.mail_FirstName,
m.mail_LastName,
m.mail_Address1,
m.mail_Address2,
m.mail_City,
m.mail_State,
m.mail_Zip,
m.mail_Phone1,
m.mail_Email1,
m.mail_Comp_GenAm,
b.bidder_number,
SUM(i.item_pr) AS SumOfitem_pr,
SUM(i.item_premium) AS SumOfitem_premium,
b.bidder_type,
s.sale_id
FROM (
( dbo_tblMailList AS m
LEFT JOIN
( SELECT bidder_mail_id , bidder_number, bidder_type, bidder_sale_id
FROM dbo_tblBidder
WHERE bidder_sale_id IN (319)
) AS b
ON m.mail_ID = b.bidder_mail_id
)
LEFT JOIN dbo_tblSale AS s
ON b.bidder_sale_id = s.sale_id
)
LEFT JOIN dbo_tblItem AS i
ON b.bidder_sale_id = i.item_sale_id
AND b.bidder_number = i.item_bidder_number
GROUP BY
m.mail_FirstName, m.mail_LastName, m.mail_Address1, m.mail_Address2, m.mail_City, m.mail_State,
m.mail_Zip, m.mail_Phone1, m.mail_Email1, m.mail_Comp_GenAm, b.bidder_number, b.bidder_type, s.sale_id;
(I have used short table aliases to try and condense the code, not a convention you have to follow)
I am working to make an automated report in Crystal Reports which requires me to add in a table to an existing, pre-written view. The view contains a Union operation which is preventing me from using the view as normal. What I have done is manualy add-in the data (about halfway through).
The item required for the report is tblSOPartsUsed.Memo. which i have added into BOTH select queries. In the join between tblCustomerInventory and tblSOPartsUsed the .Memo table only appears in the PartsUsed table, not in the CustomerInventory.
First Select Query Location
tblCustomerInventory.SerialNumber AS ExchangeSerialNumber, **tblSOPartsUsed.Memo AS SOPartsNotes**, tblInvoiceDetail.Taxable AS DetailIsTaxable,
First From Query Location
tblCustomerInventory FULL OUTER JOIN
tblSOPartsUsed INNER JOIN
I have outlined the second Select and From in exactly the same way.
Can someone please shed some light, i've tried EVERYTHING!
The full code is below...
SELECT InvoiceAssemblyPriceBook.Features AS AssemblyFeatures,
tblInvoiceAssemblyDetail.EachQuantity AS AssemblyEachQuantity,
tblInvoiceAssemblyDetail.FKInvoiceDetail AS AssemblyFKInvoiceDetail,
tblInvoiceAssemblyDetail.InvoiceAssemblyDetailKeyID,
tblInvoiceAssemblyDetail.ItemID AS AssemblyItemID,
tblInvoiceAssemblyDetail.ItemDescription AS AssemblyItemDescription,
tblInvoiceAssemblyDetail.PrintOnInvoice AS AssemblyPrintOnInvoice,
tblInvoiceAssemblyDetail.Quantity AS AssemblyQuantity,
tblInvoiceAssemblyDetail.SellingPrice AS AssemblySellingPrice,
tblInvoiceAssemblyDetail.TotalSellingPrice AS AssemblyTotalSellingPrice,
tblInvoiceAssemblyDetail.Type AS AssemblyType,
tblInvoiceAssemblyDetail.UnitOfMeasure AS AssemblyUnitOfMeasure,
tblInvoiceDetail.AssemblyType AS DetailAssemblyType,
tblInvoiceDetail.InvoiceDetailKeyID,
tblInvoiceDetail.ItemDescription AS DetailItemDescription,
tblInvoiceDetail.ItemID AS DetailItemID,
tblInvoiceDetail.PrintOnInvoice AS DetailPrintOnInvoice,
tblInvoiceDetail.Quantity AS DetailQuantity,
tblInvoiceDetail.SellingPrice AS DetailSellingPrice,
tblInvoiceDetail.TotalSellingPrice AS DetailTotalSellingPrice,
tblInvoiceDetail.Type AS DetailType,
tblInvoices.AccountNumber,
tblInvoices.Comments,
tblInvoices.ContractNumber,
tblInvoices.Deposit,
tblInvoices.Freight,
tblInvoices.GSTax,
tblInvoices.InvoiceDate,
tblInvoices.InvoiceNumber,
tblInvoices.PaidDate,
tblInvoices.QuoteNumber,
tblInvoices.SalesTaxPercent,
CASE
WHEN tblInvoiceDetail.SoNumber IS NULL
THEN tblInvoices.SONumber
ELSE tblInvoiceDetail.SoNumber
END AS SONumber,
tblInvoices.STATUS,
tblInvoices.StatusDate,
tblInvoices.Tax,
tblInvoices.TotalAmountDue,
tblInvoices.TotalComment,
tblInvoices.TotalDollarsDiscounted,
tblInvoices.TotalGrossSell,
tblInvoices.TotalNetSell,
tblInvoices.TradeIn,
tblInvoices.WorkOrderNumber,
tblPriceLevels.IsRepairLevel,
tblServiceOrders.ContractNumber AS ServiceOrderContractNumber,
tblSysCompanySettings.HideGSTaxRelatedInformation,
tblSysCompanySettings.ItemsServicedPrintOnInvoice,
tblSysDisclaimerSettings.SalesInvoiceDisclaimer,
tblSysDisclaimerSettings.ServiceInvoiceDisclaimer,
tblSysPBSettings.PrintItemorPartNum,
VoidedByReps.RepName AS VoidedByRepName,
tblInvoices.TotalNetInvoice,
InvoiceDetailPriceBook.PartNumber AS DetailPartNumber,
InvoiceDetailPriceBook.UnitOfMeasure AS DetailUnitOfMeasure,
InvoiceDetailPriceBook.Features AS DetailFeatures,
tblSysDisclaimerSettings.ContractInvoiceDisclaimer,
tblInvoices.ProviderTax,
tblServiceOrders.BriefDescription AS SOBriefDescription,
tblInvoices.GSTaxComputedBeforeTradeIn,
tblInvoices.TaxComputedBeforeTradeIn,
tblInvoices.ProviderTaxRate,
tblInvoices.FreightTaxable,
tblInvoices.GSTIsTaxable,
tblInvoices.ProjectKeyID,
InvoicesReps.RepName,
tblAccounts.AccountNumber AS Expr1,
tblAccounts.AccountID,
tblInvoices.Terms,
tblInvoices.Reference,
tblInvoices.ARCustomerNumber,
tblInvoices.PONumber,
tblInvoices.ShipVia,
tblServiceOrders.DateRequested,
tblServiceOrders.DateOpened,
tblServiceOrders.SONumber AS ServiceOrderSONumber,
tblSysReportSettings.InvoiceCommentsAtEnd,
tblInvoices.SourceDocument,
tblTaxCodes.HasTieredDistrict,
tblExchange.ExchangeKeyID,
tblCustomerInventory.ItemID AS ExchangeItemID,
tblCustomerInventory.ItemDescription AS ExchangeItemDescription,
tblCustomerInventory.SerialNumber AS ExchangeSerialNumber,
tblSOPartsUsed.Memo AS SOPartsNotes,
tblInvoiceDetail.Taxable AS DetailIsTaxable,
tblInvoiceAssemblyDetail.Taxable AS AssemblyIsTaxable,
tblInvoices.IsFinalProgressiveInvoice,
tblInvoiceDetail.IsProgressiveInvoiceItem,
tblInvoices.IsProgressiveInvoice,
tblInvoices.TotalPriceCredited,
tblInvoices.TotalTaxCredited,
tblInvoices.TotalGSTaxCredited,
tblInvoices.TotalProviderTaxCredited,
tblInvoices.TotalFreightCredited,
tblInvoices.DiscountAllowed,
tblInvoices.AmountPaid,
(
SELECT MAX(SOItemsServicedKeyID) AS Expr1
FROM tblSOItemsServiced
WHERE (SONumber = tblServiceOrders.SONumber)
) AS SOItemsServicedKeyID,
tblInvoiceDetail.CommentOnly,
ServiceOrderContacts.ContactName AS SOContactName,
tblServiceOrders.ContactPhone AS SOContactPhone,
tblServiceOrders.ContactPhoneLocation AS SOContactPhoneLocation,
(
SELECT TOP (1) FormattedPhoneNumber
FROM tblPhoneNumbers
WHERE (ContactNumber = 0)
AND (PrimaryIndicator = 1)
AND (COALESCE(PhoneLocation, '') <> 'Fax')
AND (AccountNumber = tblAccounts.AccountNumber)
) AS AccountPhone,
(
SELECT TOP (1) PhoneLocation
FROM tblPhoneNumbers AS tblPhoneNumbers_1
WHERE (ContactNumber = 0)
AND (PrimaryIndicator = 1)
AND (COALESCE(PhoneLocation, '') <> 'Fax')
AND (AccountNumber = tblAccounts.AccountNumber)
) AS AccountPhoneLocation,
COALESCE(tvwr_TotalAmountDuePerAccount.AmountDue, 0.00) AS AmountDue,
COALESCE(tvwr_TotalAmountDuePerAccount.Unappliedpayments, 0.00) AS Unappliedpayments,
tblTaxCodes.IsHarmonizedTaxCode,
tblInvoices.GSTax + tblInvoices.Tax AS HSTax
FROM tblPriceBook AS InvoiceAssemblyPriceBook
RIGHT JOIN tblPriceBook AS InvoiceDetailPriceBook
RIGHT JOIN tblInvoiceAssemblyDetail
RIGHT JOIN tblCustomerInventory
FULL JOIN tblSOPartsUsed
INNER JOIN tblExchange
ON tblSOPartsUsed.SOPartsUsedKeyID = tblExchange.FKSOPartsUsed
ON tblCustomerInventory.CustomerInventoryKeyID = tblExchange.FKCustomerInventory RIGHT JOIN tblInvoiceDetail
ON tblSOPartsUsed.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
ON tblInvoiceAssemblyDetail.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
ON InvoiceDetailPriceBook.ItemID = tblInvoiceDetail.ItemID
ON InvoiceAssemblyPriceBook.ItemID = tblInvoiceAssemblyDetail.ItemID LEFT JOIN tblPriceLevels
ON tblInvoiceDetail.PriceLevel = tblPriceLevels.PriceLevelsKeyID RIGHT JOIN tvwr_TotalAmountDuePerAccount INNER JOIN tblAccounts
ON tvwr_TotalAmountDuePerAccount.AccountNumber = tblAccounts.AccountNumber RIGHT JOIN tblReps AS VoidedByReps RIGHT JOIN tblInvoices AS tblInvoices LEFT JOIN tblTaxCodes
ON tblInvoices.SalesTaxCode = tblTaxCodes.SalesTaxCode LEFT JOIN tblReps AS InvoicesReps
ON tblInvoices.SalesRep = InvoicesReps.RepNumber
ON VoidedByReps.RepNumber = tblInvoices.StatusBy LEFT JOIN tblServiceOrders LEFT JOIN tblContacts AS ServiceOrderContacts
ON tblServiceOrders.ContactNumber = ServiceOrderContacts.ContactNumber
ON tblInvoices.SONumber = tblServiceOrders.SONumber
ON tblAccounts.AccountNumber = tblInvoices.AccountNumber
ON tblInvoiceDetail.InvoiceNumber = tblInvoices.InvoiceNumber LEFT JOIN tblContacts AS tblContacts
ON tblAccounts.PrimaryContactNumber = tblContacts.ContactNumber CROSS JOIN tblSysPBSettings CROSS JOIN tblSysCompanySettings CROSS JOIN tblSysReportSettings CROSS JOIN tblSysDisclaimerSettings
WHERE (tblInvoices.MSPAgreementNumber = 0)
UNION ALL
SELECT InvoiceAssemblyPriceBook.Features AS AssemblyFeatures,
tblInvoiceAssemblyDetail.EachQuantity AS AssemblyEachQuantity,
tblInvoiceAssemblyDetail.FKInvoiceDetail AS AssemblyFKInvoiceDetail,
tblInvoiceAssemblyDetail.InvoiceAssemblyDetailKeyID,
tblInvoiceAssemblyDetail.ItemID AS AssemblyItemID,
tblInvoiceAssemblyDetail.ItemDescription AS AssemblyItemDescription,
tblInvoiceAssemblyDetail.PrintOnInvoice AS AssemblyPrintOnInvoice,
tblInvoiceAssemblyDetail.Quantity AS AssemblyQuantity,
tblInvoiceAssemblyDetail.SellingPrice AS AssemblySellingPrice,
tblInvoiceAssemblyDetail.TotalSellingPrice AS AssemblyTotalSellingPrice,
tblInvoiceAssemblyDetail.Type AS AssemblyType,
tblInvoiceAssemblyDetail.UnitOfMeasure AS AssemblyUnitOfMeasure,
tblInvoiceDetail.AssemblyType AS DetailAssemblyType,
tblInvoiceDetail.InvoiceDetailKeyID,
tblInvoiceDetail.ItemDescription AS DetailItemDescription,
tblInvoiceDetail.ItemID AS DetailItemID,
tblInvoiceDetail.PrintOnInvoice AS DetailPrintOnInvoice,
tblInvoiceDetail.Quantity AS DetailQuantity,
tblInvoiceDetail.SellingPrice AS DetailSellingPrice,
tblInvoiceDetail.TotalSellingPrice AS DetailTotalSellingPrice,
tblInvoiceDetail.Type AS DetailType,
tblInvoices.AccountNumber,
tblInvoices.Comments,
tblInvoices.ContractNumber,
tblInvoices.Deposit,
tblInvoices.Freight,
tblInvoices.GSTax,
tblInvoices.InvoiceDate,
tblInvoices.InvoiceNumber,
tblInvoices.PaidDate,
tblInvoices.QuoteNumber,
tblInvoices.SalesTaxPercent,
CASE
WHEN tblInvoiceDetail.SoNumber IS NULL
THEN tblInvoices.SONumber
ELSE tblInvoiceDetail.SoNumber
END AS SONumber,
tblInvoices.STATUS,
tblInvoices.StatusDate,
tblInvoices.Tax,
tblInvoices.TotalAmountDue,
tblInvoices.TotalComment,
tblInvoices.TotalDollarsDiscounted,
tblInvoices.TotalGrossSell,
tblInvoices.TotalNetSell,
tblInvoices.TradeIn,
tblInvoices.WorkOrderNumber,
tblPriceLevels.IsRepairLevel,
tblServiceOrders.ContractNumber AS ServiceOrderContractNumber,
tblSysCompanySettings.HideGSTaxRelatedInformation,
tblSysCompanySettings.ItemsServicedPrintOnInvoice,
tblSysDisclaimerSettings.SalesInvoiceDisclaimer,
tblSysDisclaimerSettings.MSPAgreementInvoiceDisclaimer AS ServiceInvoiceDisclaimer,
tblSysPBSettings.PrintItemorPartNum,
VoidedByReps.RepName AS VoidedByRepName,
tblInvoices.TotalNetInvoice,
InvoiceDetailPriceBook.PartNumber AS DetailPartNumber,
InvoiceDetailPriceBook.UnitOfMeasure AS DetailUnitOfMeasure,
InvoiceDetailPriceBook.Features AS DetailFeatures,
tblSysDisclaimerSettings.ContractInvoiceDisclaimer,
tblInvoices.ProviderTax,
tblServiceOrders.BriefDescription AS SOBriefDescription,
tblInvoices.GSTaxComputedBeforeTradeIn,
tblInvoices.TaxComputedBeforeTradeIn,
tblInvoices.ProviderTaxRate,
tblInvoices.FreightTaxable,
tblInvoices.GSTIsTaxable,
tblInvoices.ProjectKeyID,
InvoicesReps.RepName,
tblAccounts.AccountNumber AS Expr1,
tblAccounts.AccountID,
tblInvoices.Terms,
tblInvoices.Reference,
tblInvoices.ARCustomerNumber,
tblInvoices.PONumber,
tblInvoices.ShipVia,
tblServiceOrders.DateRequested,
tblServiceOrders.DateOpened,
tblServiceOrders.SONumber AS ServiceOrderSONumber,
tblSysReportSettings.InvoiceCommentsAtEnd,
tblInvoices.SourceDocument,
tblTaxCodes.HasTieredDistrict,
tblExchange.ExchangeKeyID,
tblCustomerInventory.ItemID AS ExchangeItemID,
tblCustomerInventory.ItemDescription AS ExchangeItemDescription,
tblCustomerInventory.SerialNumber AS ExchangeSerialNumber,
tblSOPartsUsed.Memo AS SOPartsNotes,
tblInvoiceDetail.Taxable AS DetailIsTaxable,
tblInvoiceAssemblyDetail.Taxable AS AssemblyIsTaxable,
tblInvoices.IsFinalProgressiveInvoice,
tblInvoiceDetail.IsProgressiveInvoiceItem,
tblInvoices.IsProgressiveInvoice,
tblInvoices.TotalPriceCredited,
tblInvoices.TotalTaxCredited,
tblInvoices.TotalGSTaxCredited,
tblInvoices.TotalProviderTaxCredited,
tblInvoices.TotalFreightCredited,
tblInvoices.DiscountAllowed,
tblInvoices.AmountPaid,
(
SELECT MAX(SOItemsServicedKeyID) AS Expr1
FROM tblSOItemsServiced
WHERE (SONumber = tblServiceOrders.SONumber)
) AS SOItemsServicedKeyID,
tblInvoiceDetail.CommentOnly,
ServiceOrderContacts.ContactName AS SOContactName,
tblServiceOrders.ContactPhone AS SOContactPhone,
tblServiceOrders.ContactPhoneLocation AS SOContactPhoneLocation,
(
SELECT TOP (1) FormattedPhoneNumber
FROM tblPhoneNumbers
WHERE (ContactNumber = 0)
AND (PrimaryIndicator = 1)
AND (COALESCE(PhoneLocation, '') <> 'Fax')
AND (AccountNumber = tblAccounts.AccountNumber)
) AS AccountPhone,
(
SELECT TOP (1) PhoneLocation
FROM tblPhoneNumbers AS tblPhoneNumbers_1
WHERE (ContactNumber = 0)
AND (PrimaryIndicator = 1)
AND (COALESCE(PhoneLocation, '') <> 'Fax')
AND (AccountNumber = tblAccounts.AccountNumber)
) AS AccountPhoneLocation,
COALESCE(tvwr_TotalAmountDuePerAccount.AmountDue, 0.00) AS AmountDue,
COALESCE(tvwr_TotalAmountDuePerAccount.Unappliedpayments, 0.00) AS Unappliedpayments,
COALESCE(tblTaxCodes.IsHarmonizedTaxCode, 0) AS IsHarmonizedTaxCode,
tblInvoices.GSTax + tblInvoices.Tax AS HSTax
FROM tblPriceBook AS InvoiceAssemblyPriceBook
RIGHT JOIN tblPriceBook AS InvoiceDetailPriceBook
RIGHT JOIN tblInvoiceAssemblyDetail
RIGHT JOIN tblCustomerInventory
FULL JOIN tblSOPartsUsed
INNER JOIN tblExchange
ON tblSOPartsUsed.SOPartsUsedKeyID = tblExchange.FKSOPartsUsed
ON tblCustomerInventory.CustomerInventoryKeyID = tblExchange.FKCustomerInventory RIGHT JOIN tblInvoiceDetail
ON tblSOPartsUsed.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
ON tblInvoiceAssemblyDetail.FKInvoiceDetail = tblInvoiceDetail.InvoiceDetailKeyID
ON InvoiceDetailPriceBook.ItemID = tblInvoiceDetail.ItemID
ON InvoiceAssemblyPriceBook.ItemID = tblInvoiceAssemblyDetail.ItemID LEFT JOIN tblPriceLevels
ON tblInvoiceDetail.PriceLevel = tblPriceLevels.PriceLevelsKeyID RIGHT JOIN tvwr_TotalAmountDuePerAccount INNER JOIN tblAccounts
ON tvwr_TotalAmountDuePerAccount.AccountNumber = tblAccounts.AccountNumber RIGHT JOIN tblReps AS VoidedByReps RIGHT JOIN tblInvoices AS tblInvoices LEFT JOIN tblTaxCodes
ON tblInvoices.SalesTaxCode = tblTaxCodes.SalesTaxCode LEFT JOIN tblReps AS InvoicesReps
ON tblInvoices.SalesRep = InvoicesReps.RepNumber
ON VoidedByReps.RepNumber = tblInvoices.StatusBy LEFT JOIN tblServiceOrders LEFT JOIN tblContacts AS ServiceOrderContacts
ON tblServiceOrders.ContactNumber = ServiceOrderContacts.ContactNumber
ON tblInvoices.SONumber = tblServiceOrders.SONumber
ON tblAccounts.AccountNumber = tblInvoices.AccountNumber
ON tblInvoiceDetail.InvoiceNumber = tblInvoices.InvoiceNumber LEFT JOIN tblContacts AS tblContacts
ON tblAccounts.PrimaryContactNumber = tblContacts.ContactNumber CROSS JOIN tblSysPBSettings CROSS JOIN tblSysCompanySettings CROSS JOIN tblSysReportSettings CROSS JOIN tblSysDisclaimerSettings
WHERE (tblInvoices.MSPAgreementNumber <> 0)
I managed to copy each half of the view into a new view, manually tick off the tblSOPartsUsed.memo from the GUI and copied the two together which made the view work great