私は今四半期1,2,3および4で結果を照会できるかどうか疑問に思っていました。 今年は2017 )例えば、次のように:MySQLは現在の年に1,2,3,4を取得します
╔═══════════╦════════╗════════╗════════╗
║ Q1 ║ Q2 ║ Q3 ║ Q4 ║
╠═══════════╬════════╣════════║════════║
║ € K54 ║ € K14 ║ € K0 ║ € K0 ║
╚═══════════╩════════╝════════╝════════╝
そして、これは私が作ったものです今:(それはQ2でQ2に変わるように、このクエリではQ1は、現在あると私はそれらを表示したいといけません。上記の例のように別々です)。
╔══════════════╦
║ Q1 ║
╠══════════════╬
║ € K54 ║
╚══════════════╩
これは私が作成したクエリです。結果が見つからない場合は€K0が自動的に表示されます。
SELECT IF(SUM(totalExcl) IS NULL,0,
CONCAT('€ K',
FORMAT((SUM(totalExcl)/1000),
0,'nl_NL'))) AS Q1
FROM
ex.ps_order o LEFT JOIN
ex.ps_oxo_quotation q ON o.id_order = q.idOrder LEFT JOIN
ex.ps_employee e ON q.idEmployee = e.id_employee
WHERE
QUARTER(q.date_add) = QUARTER(UTC_TIMESTAMP())
AND e.lastname IN ('Ver')
私は以前の四半期クエリと現在の四半期クエリを作成する方法を知っています。しかし、今年のQ1、Q2、Q3、Q4とまったく同じではありません。
は、私は今、結果としてこれを取得してい 、ほぼ満足しています:
このクエリでは╔═════════╦════════╗════════╗════════╗
║ Q1 ║ Q2 ║ Q3 ║ Q4 ║
╠═════════╬════════╣════════║════════║
║€96086,03║ € 0,00 ║ € 0,00 ║ € 0,00 ║
╚═════════╩════════╝════════╝════════╝
:(Bennjoe Mordenoのおかげで)それがフォーマットされた取得するには
SELECT
CONCAT('€ ',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 1 THEN totalExcl ELSE 0 END) AS CHAR(100)), 2, 'nl_NL')) as Q1,
CONCAT('€ ',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 2 THEN totalExcl ELSE 0 END) AS CHAR(100)), 2, 'nl_NL')) as Q2,
CONCAT('€ ',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 3 THEN totalExcl ELSE 0 END) AS CHAR(100)), 2, 'nl_NL')) as Q3,
CONCAT('€ ',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 4 THEN totalExcl ELSE 0 END) as CHAR(100)), 2, 'nl_NL')) as Q4
FROM
これを使用してください:
SELECT
CONCAT('€ K',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 1 THEN totalexcl ELSE 0 END)/1000 AS CHAR(100)), 0, 'nl_NL')) as Q1,
CONCAT('€ K',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 2 THEN totalexcl ELSE 0 END)/1000 AS CHAR(100)), 0, 'nl_NL')) as Q2,
CONCAT('€ K',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 3 THEN totalexcl ELSE 0 END)/1000 AS CHAR(100)), 0, 'nl_NL')) as Q3,
CONCAT('€ K',FORMAT(+ CAST(SUM(CASE WHEN QUARTER(q.date_add) = 4 THEN totalexcl ELSE 0 END)/1000 AS CHAR(100)), 0, 'nl_NL')) as Q4
FROM
結果:
╔═════════╦════════╗════════╗════════╗
║ Q1 ║ Q2 ║ Q3 ║ Q4 ║
╠═════════╬════════╣════════║════════║
║ € K96 ║ € 0 ║ € 0 ║ € 0 ║
╚═════════╩════════╝════════╝════════╝
愛Unicodeの芸術 – Morgoth
あなただけのクエリのQ2 Q3とQ4の列に文字列 'K' を削除することができます。それは単に「€K」(「€」に変更されます)と連結されて計算された合計(文字列に変換されます)を連結するので、Kを削除するには、連結する前にKを削除するだけです。 –
おっと、私はあなたがそれがフォーマットされたかったことに気付かなかった。それをちょうど1000で割るのであれば、それをこれに変更してください。 CAST(SUM(Q1.d))= 1 THQ totalexcl ELSE 0 END)/ 1000 AS CHAR(100))Q1 –