como selecionar a soma deste mês a partir da esquerda juntar três tabelas

M. Ramdhani Yanuarsyah

Atualmente é março de 2021 e estou tentando selecionar a soma de três tabelas com case, se não este mês e este ano, a saída é 0.

a saída correta quando faço cálculos manuais é e a saída que desejo:

Alkohol 70% 1000 ML   0 
Amoxicillin 500 mg    0 
Amoxicillin Syrup     0  
Asam Askorbat         0  
Combiven              0  
Masker                100

Eu tentei isso, mas o resultado não é o que desejo:

SELECT table_one.name, CASE WHEN (MONTH(table_two.date) = MONTH(NOW())) AND (YEAR(table_two.date) = YEAR(NOW()))
       THEN SUM(income)
       ELSE 0
END AS total_income
FROM table_one
LEFT JOIN table_three ON table_one.id_one = table_three.one_id
LEFT JOIN table_two ON table_two.id_two = table_three.one_id
WHERE
(id_one NOT IN (SELECT one_id FROM table_three)
OR id_one IN (SELECT one_id FROM table_three))
GROUP BY one_id

aqui estão meus dados e estrutura:

CREATE TABLE table_one (
  id_one INT(11) NOT NULL AUTO_INCREMENT,
  NAME VARCHAR(255) NOT NULL,
  unit VARCHAR(255) NOT NULL,
  stock INT(11) NOT NULL,
  PRIMARY KEY (id_one)
);

INSERT  INTO table_one VALUES 
(2,'Alkohol 70% 1000 ML','Botol',50),
(3,'Amoxicillin 500 mg','Tablet',0),
(4,'Amoxicillin Syrup','Botol',75),
(5,'Asam Askorbat','Tablet',0),
(6,'Combiven','Sup',25),
(16,'Masker','Tube',200);

CREATE TABLE table_three (
  id_three INT(11) NOT NULL AUTO_INCREMENT,
  batch CHAR(1) NOT NULL,
  income INT(11) NOT NULL,
  exp_date DATE NOT NULL,
  descr TEXT DEFAULT NULL,
  one_id INT(11) NOT NULL,
  two_id INT(11) NOT NULL,
  PRIMARY KEY (id_three),
  KEY one_id (one_id),
  KEY two_id (two_id),
  CONSTRAINT table_three_ibfk_1 FOREIGN KEY (one_id) REFERENCES table_one (id_one),
  CONSTRAINT table_three_ibfk_2 FOREIGN KEY (two_id) REFERENCES table_two (id_two)
);


INSERT  INTO table_three VALUES 
(1,'A',1000,'2022-02-22','ket.',6,1),
(2,'1',500,'2021-02-22','',2,4),
(3,'4',50,'1970-01-01','',5,5),
(4,'7',75,'1970-01-01','',4,5),
(5,'1',100,'1970-01-01','',6,4),
(6,'',100,'1970-01-01','',16,6),
(7,'',100,'1970-01-01','',16,5),
(8,'',50,'1970-01-01','',16,7),
(11,'',50,'0000-00-00',NULL,16,7);

/*Table structure for table table_two */

CREATE TABLE table_two (
  id_two INT(11) NOT NULL AUTO_INCREMENT,
  DATE DATE NOT NULL,
  source VARCHAR(64) NOT NULL,
  file_source TEXT NOT NULL,
  descr TEXT DEFAULT NULL,
  PRIMARY KEY (id_two)
);

INSERT  INTO table_two VALUES 
(1,'2021-02-18','Lain-lain','bukti barang masuk_3.jpg','test'),
(4,'2021-02-18','Pembelian dengan dana JKN','bukti barang masuk_2.jpg','keterangan'),
(5,'2021-02-21','Dinas kesehatan','bukti barang masuk_1.jpg','set'),
(6,'2021-02-26','Pembelian dengan dana JKN','bukti barang masuk.jpg',''),
(7,'2021-03-02','Pembelian dengan dana JKN','4_faktur pembelian.jpg','');

O que devo fazer?

Alexandre Keller

Aqui está a solicitação sql que você deseja:

SELECT 
    `table_one`.`NAME`, 
    SUM(CASE WHEN (MONTH(`table_two`.`DATE`) = MONTH(NOW())) AND (YEAR(`table_two`.`DATE`) = YEAR(NOW()))
       THEN `table_three`.`income`
       ELSE 0
       END
    ) AS total_income
FROM `table_one`
LEFT JOIN `table_three` ON `table_three`.`one_id` = `table_one`.`id_one`
LEFT JOIN `table_two` ON `table_two`.`id_two` = `table_three`.`two_id`
GROUP BY `table_one`.`id_one`

Voce estava muito perto

A parte principal era SUM após a ação de CASE.

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

como juntar três tabelas com uma saída

Como juntar e obter soma de três tabelas diferentes no codeigniter?

Como juntar três tabelas em SQLite?

Como juntar em três tabelas no mysql

Como juntar em três tabelas no mysql

Como juntar três tabelas no servidor sql

Como juntar e selecionar a partir de tabelas com condições?

Como juntar e selecionar a partir de tabelas com condições?

Como selecionar diferenças usando três tabelas?

Como juntar três tabelas para verificar os dados no sql?

Como juntar três tabelas no Firebase Realtime Database?

Como juntar três tabelas usando uma única tabela no hibernate?

Como juntar um a muitos distintos em três tabelas?

MySQL - Como juntar e obter dados dessas três tabelas?

Como juntar três tabelas MySQL (Sequelize.js)

como juntar três tabelas sem duplicação no sql?

Como juntar três tabelas MySQL (Sequelize.js)

Como juntar tabelas e selecionar por data máxima

Como selecionar a partir de duas tabelas e comparar a soma da primeira tabela se for maior do que a da segunda tabela?

como posso selecionar três tabelas com join no mysql?

Como juntar 2 tabelas para obter mais dados da tabela esquerda

Como juntar duas tabelas com linhas ausentes no último mês?

Como selecionar uma linha específica da tabela SQL e juntar várias tabelas no servidor SQL?

Como juntar três regexp

Consulta MySQL para juntar três tabelas e obter dados da 2ª e 3ª tabela

Como selecionar no mysql aquele grupo por mês em um ano e o valor da soma em um mês?

Incapaz de juntar três tabelas com função de agregação de soma usando a biblioteca Sequelize

Incapaz de juntar três tabelas com função de agregação de soma usando a biblioteca Sequelize

Como juntar três tabelas e obter valor na visualização em grade

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo