0
여러 테이블에서 데이터를 가져 와서 데이터를 가져 오는 동안 나이를 계산하려고하는데 라운드를 사용하여 나이를 계산할 수 없습니다.MySQL : 구문이 잘못되었습니다. 'ROUND'
제안이 유용 할 것입니다. 당신이 ROUND
의 결과가 당신의 결과 집합에 포함하려면
SELECT client.ClientNumber
, client.ClientActive AS Active
, invoice.ClientNumber
, invoice.InvoiceDate AS InvoiceDate
, invoicedetail.InvoiceNumber AS Invoice
, invoicedetail.ClientNumber
, invoicedetail.Extended AS Cost
, invoicedetail.ServiceDate AS Serviced
FROM
dbo.client
INNER JOIN dbo.invoice
ON client.ClientNumber = invoice.ClientNumber
INNER JOIN dbo.invoicedetail
ON invoice.ClientNumber = invoicedetail.ClientNumber
WHERE
client.ClientActive = 'Y'
GROUP BY
client.ClientNumber
, client.ClientActive
, invoice.ClientNumber
, invoice.InvoiceDate
, invoicedetail.InvoiceNumber
, invoicedetail.ServiceDate
, invoicedetail.Extended
, invoicedetail.ClientNumber
, invoicedetail.ClientNumber
ORDER BY
InvoiceDate
ROUND(DATEDIFF(hour,CASE WHEN [InvoiceDate]>= GETDATE() THEN NULL ELSE [InvoiceDate] END, getdate())/8766.0,2) AS [ClientAge],
(CASE WHEN ROUND(DATEDIFF(hour,CASE WHEN [InvoiceDate]>= GETDATE() THEN NULL ELSE [InvoiceDate] END, getdate())/8766.0,2)< 0.5 THEN '0-5 months'
WHEN ROUND(DATEDIFF(hour,CASE WHEN [InvoiceDate]>= GETDATE() THEN NULL ELSE [InvoiceDate] END, getdate())/8766.0,2) BETWEEN 0.5 AND 0.99 THEN '6-11 months'
WHEN ROUND(DATEDIFF(hour,CASE WHEN [InvoiceDate]>= GETDATE() THEN NULL ELSE [InvoiceDate] END, getdate())/8766.0,2) BETWEEN 1 AND 5.99 THEN '1-5 years'
WHEN ROUND(DATEDIFF(hour,CASE WHEN [InvoiceDate]>= GETDATE() THEN NULL ELSE [InvoiceDate] END, getdate())/8766.0,2) BETWEEN 6 AND 10.99 THEN '6-10 years'
WHEN ROUND(DATEDIFF(hour,CASE WHEN [InvoiceDate]>= GETDATE() THEN NULL ELSE [InvoiceDate] END, getdate())/8766.0,2) BETWEEN 11 AND 15.99 THEN '11-15 years'
WHEN ROUND(DATEDIFF(hour,CASE WHEN [InvoiceDate]>= GETDATE() THEN NULL ELSE [InvoiceDate] END, getdate())/8766.0,2)>=16 THEN '16+ years'
END) as [ClientAgeGroup]
왜 'ROUND입니다 (...)'거기 있니? 그게 뭐야? 왜 * ORDER BY 이후입니까? 또한,'InvoiceDate' 주위에'[]'가있는 것은 무엇입니까? –
'ROUND()'는 순서에서 고려해야 할 사항입니까? 그런 다음 쉼표가 누락되었습니다. 그렇지 않으면, 거기에 ROUND()가 무엇입니까? –
년을 계산하는 데 도움이되는 round를 사용하려고합니까? – user3586979