2011-12-15 7 views
6

Próbuję użyć formatu w kwerendzie SQL do pakietu raportowania. Mam liczby, które muszę pokazać jako walutę z dwoma miejscami dziesiętnymi, więc używam polecenia formatowania, aby to zrobić. Problem polega na tym formacie stawia także w przecinka do oddzielenia tysięcy, a funkcja suma pakiet sprawozdawczy nie może sobie z tym poradzić, więc traktuje sformatowaną wartość liczbową jako tekst i nie dodawać go w zapytaniu używa: -.Kwerenda MYSQL - Użyj formatu, ale bez przecinków

SELECT customers.name AS "customers name", FORMAT(contracts.charge,2) AS "contracts charge" 
FROM customers 
ORDER BY customers.name 

(rzeczywista zapytanie jest dużo bardziej skomplikowana, ale jest to odpowiednia część)

Aby wyjaśnić dokładniej: -

Jeżeli wartość liczbowa wynosi 123,1 sformatowany wyjście 123,10 których działa. Jeżeli wartość liczbowa wynosi 1234,1 sformatowany wyjście jest 1,234.10, który nie

muszę znaleźć sposób, aby przekonać zapytanie do wyjścia 1234,10

Dziękujemy

Odpowiedz

14

może po prostu:

REPLACE(FORMAT(contracts.charge, 2), ',', '') 
3

możliwe obejście byłoby zastąpienie przecinek po formacie:

REPLACE(FORMAT(contracts.charge,2),',','') AS "contracts charge" 
+0

Dziękujemy, że pracowali pięknie –

0

Invertir, aby dziesiętnie. do mil WYMIANA (WYMIANA (WYMIANA (FORMAT (contracts.charge, 2), ',', '-'), '.', ','), '-', '.') AS contract_charge

+0

Naprawdę powinni być ustawienie ich lokum prawidłowo, starając się nie zrobić ciąg wymiany na istniejącym formatowanie tak. – Iguananaut

5

Ten post wydaje się mieć znacznie czystsze rozwiązanie:

wystarczy użyć ROUND, jest to funkcja numeryczna. FORMAT jest funkcją String