Friday, February 24, 2012

I need help with this tsql statement

Every time I try this statement I keep getting a syntext error near count I must be over looking something can some one help me with this.

SELECT 'Quarter 1' as 'qtr'
count(jobid) as 'transcount',
count(distinct job.patientid) as 'patientcount',
sum(job.LANGUAGE_TCOST) as 'lcost',
Sum(job.LANGUAGE_DISC_COST) as 'dlcost',
avg(LANGUAGE_DISC) as 'avgLDisc',
(sum(job.LANGUAGE_TCOST) + sum(job.LANGUAGE_DISC_COST)) as 'LGrossAmtBilled',
(sum(LANGUAGE_TCOST) / count(distinct job.patientid)) as 'PatAvgL',
(sum(LANGUAGE_TCOST) / count(jobid)) as 'RefAvgL',
sum(LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (1,2,3))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_COMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

UNION ALL

SELECT 'Quarter 2' as 'qtr'
count(jobid) as 'transcount',
count(distinct job.patientid) as 'patientcount',
sum(job.LANGUAGE_TCOST) as 'lcost',
Sum(job.LANGUAGE_DISC_COST) as 'dlcost',
avg(LANGUAGE_DISC) as 'avgLDisc',
(sum(job.LANGUAGE_TCOST) + sum(job.LANGUAGE_DISC_COST)) as 'LGrossAmtBilled',
(sum(LANGUAGE_TCOST) / count(distinct job.patientid)) as 'PatAvgL',
(sum(LANGUAGE_TCOST) / count(jobid)) as 'RefAvgL',
sum(LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (4,5,6))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_COMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

UNION ALL

SELECT 'Quarter 3' as 'qtr'
count(jobid) as 'transcount',
count(distinct job.patientid) as 'patientcount',
sum(job.LANGUAGE_TCOST) as 'lcost',
Sum(job.LANGUAGE_DISC_COST) as 'dlcost',
avg(LANGUAGE_DISC) as 'avgLDisc',
(sum(job.LANGUAGE_TCOST) + sum(job.LANGUAGE_DISC_COST)) as 'LGrossAmtBilled',
(sum(LANGUAGE_TCOST) / count(distinct job.patientid)) as 'PatAvgL',
(sum(LANGUAGE_TCOST) / count(jobid)) as 'RefAvgL',
sum(LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (7,8,9))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_COMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

UNION ALL

SELECT 'Quarter 4' as 'qtr'
count(jobid) as 'transcount',
count(distinct job.patientid) as 'patientcount',
sum(job.LANGUAGE_TCOST) as 'lcost',
Sum(job.LANGUAGE_DISC_COST) as 'dlcost',
avg(LANGUAGE_DISC) as 'avgLDisc',
(sum(job.LANGUAGE_TCOST) + sum(job.LANGUAGE_DISC_COST)) as 'LGrossAmtBilled',
(sum(LANGUAGE_TCOST) / count(distinct job.patientid)) as 'PatAvgL',
(sum(LANGUAGE_TCOST) / count(jobid)) as 'RefAvgL',
sum(LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (10,11,12))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_cOMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

Order By 'QTR' asc

At first glance I can see that you are missing commas after all of the columns that look like this:'Quarter 1' as 'qtr'|||

I fixed the commas issue but now I get a

There is an error in the query. Incorrect syntax near '.'.
Incorrect syntax near '.'.
Incorrect syntax near '.'.
Incorrect syntax near '.'.

Can some one help me I cant see where the error is coming

SELECT 'Quarter 1' as 'qtr',
COUNT(JOB.JOBID) as 'transcount',
COUNT(DISTINCT JOB.PATIENTID) as 'patient count',
SUM(JOB.LANGUAGE_TCOST) as 'lcost',
SUM(JOB.LANGUAGE_DISC_COST) as 'dlcost',
AVG(JOB.LANGUAGE_DISC) as 'avgLDisc',
SUM(JOB.LANGUAGE_TCOST) + SUM(JOB.LANGUAGE_DISC_COST) as 'LGrossAmtBilled',
SUM(JOB.LANGUAGE_TCOST) / COUNT(DISTINCT JOB.PATIENTID) as 'PatAvgL',
SUM(JOB.LANGUAGE_TCOST) / COUNT(JOB.JOBID) as 'RefAvgL',
SUM(JOB.LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (1,2,3))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_COMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

UNION ALL

SELECT 'Quarter 2' as 'qtr',
COUNT(JOB.JOBID) as 'transcount',
COUNT(DISTINCT JOB.PATIENTID) as 'patient count',
SUM(JOB.LANGUAGE_TCOST) as 'lcost',
SUM(JOB.LANGUAGE_DISC_COST) as 'dlcost',
AVG(JOB.LANGUAGE_DISC) as 'avgLDisc',
SUM(JOB.LANGUAGE_TCOST) + SUM(JOB.LANGUAGE_DISC_COST) as 'LGrossAmtBilled',
SUM(JOB.LANGUAGE_TCOST) / COUNT(DISTINCT JOB.PATIENTID) as 'PatAvgL',
SUM(JOB.LANGUAGE_TCOST) / COUNT(JOB.JOBID) as 'RefAvgL',
SUM(JOB.LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (4,6,3))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_COMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

UNION ALL

SELECT 'Quarter 3' as 'qtr',
COUNT(JOB.JOBID) as 'transcount',
COUNT(DISTINCT JOB.PATIENTID) as 'patient count',
SUM(JOB.LANGUAGE_TCOST) as 'lcost',
SUM(JOB.LANGUAGE_DISC_COST) as 'dlcost',
AVG(JOB.LANGUAGE_DISC) as 'avgLDisc',
SUM(JOB.LANGUAGE_TCOST) + SUM(JOB.LANGUAGE_DISC_COST) as 'LGrossAmtBilled',
SUM(JOB.LANGUAGE_TCOST) / COUNT(DISTINCT JOB.PATIENTID) as 'PatAvgL',
SUM(JOB.LANGUAGE_TCOST) / COUNT(JOB.JOBID) as 'RefAvgL',
SUM(JOB.LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (7,8,9))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_COMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

UNION ALL

SELECT 'Quarter 4' as 'qtr',
COUNT(JOB.JOBID) as 'transcount',
COUNT(DISTINCT JOB.PATIENTID) as 'patient count',
SUM(JOB.LANGUAGE_TCOST) as 'lcost',
SUM(JOB.LANGUAGE_DISC_COST) as 'dlcost',
AVG(JOB.LANGUAGE_DISC) as 'avgLDisc',
SUM(JOB.LANGUAGE_TCOST) + SUM(JOB.LANGUAGE_DISC_COST) as 'LGrossAmtBilled',
SUM(JOB.LANGUAGE_TCOST) / COUNT(DISTINCT JOB.PATIENTID) as 'PatAvgL',
SUM(JOB.LANGUAGE_TCOST) / COUNT(JOB.JOBID) as 'RefAvgL',
SUM(JOB.LANGUAGE_DISC) as 'avgPercentDiscL',
JOB.JURISDICTION,
PAYER.PAY_COMPANY,
PAYER.PAY_CITY,
PAYER.PAY_STATE,
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE
INVOICE_AR.INVOICE_DATE AS EXPR1,
INVOICE_AR.AMOUNT_DUE

FROM JOB
INNER JOIN INVOICE_AR
ON JOB.JOBID = INVOICE_AR.JOBID
LEFT OUTER JOIN PAYER
ON PAYER.PAYERID = JOB.PAYER.ID
LEFT OUTER JOIN STATES
ON JOB.JURISDICTION = STATES.INITIALS

WHERE
(INVOICE_AR.AMOUNT_DUE > 0)
AND
(INVOICE-AR.INVOICE_DATE BETWEEN @.startdate and @.enddate)
AND
(MONTH(INVOICE_AR.INVOICE_DATE) IN (10,11,12))
AND
(PAYER.PAYCOMPANY like '%' + @.Company + '%')


Group By
JOB.JURISDICTION
PAYER.PAY_COMPANY
PAYER.PAY_CITY
PAYER.PAY_STATE
PAYER.PAY_SALES_STAFF_ID,
JOB.INVOICE_DATE,
INVOICE_AR.INVOICE_DATE,
INVOICE_AR.AMOUNT_DUE

Order By 'QTR' asc

|||

Again, just glancing, I see that you are missing commas after some of the columns in your GROUP BY clause. And I believe that this structure is invalid: COUNT(DISTINCT JOB.PATIENTID) as 'patient count' (specially, the DISTINCT keyword).

|||A troubleshooting suggestion: get just one of those SQL SELECT statements working without error (for the first quarter). Then add the second quarter. Once you have those 2 working together, add the other 2 quarters. Dealing with the entire thing all at once is giving you too much to worry about. Get the basics working first.

No comments:

Post a Comment