Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Vand Proiect AI cu ChatGPT 4(Gene...

E-Mail in serie prin Excel si Out...

Modul alimentare rulou/jaluzea ex...

Recuperare fișiere dupa form...
 Aplicatii stress test RAM

Asigurare auto hibrid

Asus B550M - PC-ul nu porneste di...

Tzanca Uraganu - Inconjurat de Fe...
 explicatie montaj breadboard

3 Doors Down - Kryptonite

Semnalizati cand virati pe un dru...

Succesiune - mostenire apartament...
 Donez Siofor de 1000mg ( diabet t...

Izolatie intre parter si etaj

Hranirea pasarilor din orase -pro...

[unde] goarna tramvai
 

interogare unde valoarea facturii sa fie suma dintre cele 2 valori

- - - - -
  • Please log in to reply
9 replies to this topic

#1
laurica_fl

laurica_fl

    Junior Member

  • Grup: Members
  • Posts: 210
  • Înscris: 17.09.2005
Buna ziua.
Vin catre voi cu o noua problema.

Am niste informatii scoase si puse intr-o tabela temporara.

select   *  from tmp_promotii

Dupa cum se vede informatiile aduse se impart in doua randuri, chiar daca e vorba de aceeasi factura. Splitul se face din cauza valorii de retur, care e direct legata de fiecare articol in parte, dar nu asta e important.

Cum fac ca selectul de mai sus sa imi aduca un singur rand unde valoarea facturii sa fie suma dintre cele 2 valori. Varianta de group by nu am reusit.

Multumesc.

Attached Files


Edited by laurica_fl, 29 September 2022 - 13:19.


#2
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,570
  • Înscris: 30.07.2003
Posteaza codul de spui ca nu ti-a reusit. Include SUM pe campurile valorice, nu include informatiile de retur si astfel vei obtine factura unica cu totalurile aferente.

Edited by neagu_laurentiu, 29 September 2022 - 14:06.


#3
laurica_fl

laurica_fl

    Junior Member

  • Grup: Members
  • Posts: 210
  • Înscris: 17.09.2005

View Postneagu_laurentiu, on 29 septembrie 2022 - 14:04, said:

Posteaza codul de spui ca nu ti-a reusit. Include SUM pe campurile valorice, nu include informatiile de retur si astfel vei obtine factura unica cu totalurile aferente.

Buna ziua.
Pai am nevoie de informatiile de retur, nu pot sa le exclud. Doar daca pentru informatiile de retur fac o alta tabela temporara si folosesc un join pentru ele in a doua.
Codul e cel de mai sus.  Informatiile initiale le aduc dintr-un cod destuld e stufos. Dar informatiile le pun in acea tabela temporara. Si obtin 2 randuri. Daca nu se poate cred ca fac 2 proceduri.
Multumesc!

#4
iulian_1976

iulian_1976

    Active Member

  • Grup: Members
  • Posts: 1,571
  • Înscris: 10.05.2008
Procedura stocata.

#5
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,189
  • Înscris: 24.02.2007
Window function?

https://learn.micros...ql-server-ver16

#6
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,570
  • Înscris: 30.07.2003

View Postlaurica_fl, on 03 octombrie 2022 - 09:26, said:

Pai am nevoie de informatiile de retur, nu pot sa le exclud.
De valoarea de retur ai nevoie sa o scazi din cea initiala. Si de numar/data factura retur? Pai daca-s 3 si nu 1 de retur, cum vrei pe o singura factura initiala? Hai cu o singura de retur mai merge dar garantezi ca nu-s mai multe?

Edited by neagu_laurentiu, 04 October 2022 - 14:01.


#7
laurica_fl

laurica_fl

    Junior Member

  • Grup: Members
  • Posts: 210
  • Înscris: 17.09.2005
Buna ziua.
select  hncp.Partener_Denumire as Partener, year(hnc.data_document_primar),
cast(sum(dnc.Cantitate) as int) as Cantitate, cast(sum(dnc.Valoare_Neta_ROL) as numeric(10,2)) as Valoare, year(hnc.data_document_primar) as An,

CASE WHEN year(hnc.data_document_primar)  = 2020 THEN sum(dnc.Cantitate) Else 0 END  AS SalesQ2020,
CASE WHEN year(hnc.data_document_primar)  = 2020 THEN sum(dnc.Valoare_Neta_ROL)  END  AS SalesV2020,
CASE WHEN year(hnc.data_document_primar)  = 2021 THEN sum(dnc.Cantitate)  END  AS SalesQ2021,
CASE WHEN year(hnc.data_document_primar)  = 2021 THEN sum(dnc.Valoare_Neta_ROL)  END  AS SalesV2021

from C_H_Note_Contabile hnc
inner join C_H_Note_Contabile_Parteneri hncp on hncp.H_Id=hnc.H_Id
inner join C_D_Note_Contabile dnc on dnc.H_Id=hnc.H_Id
inner join LT_Custodie_Tipuri_Rafturi trf on trf.articol_id = dnc.Articol_Id

where hnc.Tip_Document_Id=4 and hnc.Data_Document_Primar between '2020-01-01' and '2021-12-31'
and hncp.Partener_Id  not in (2,2134, 2701, 4163)
and dnc.Articol_Id not in (863)
group by hncp.Partener_Denumire,  year(hnc.data_document_primar)

Cum fac ca raspunsul sa nu fie pe doua randuri? Sa obtin un singur rand? Multumesc!

Attached Files


Edited by laurica_fl, 17 October 2022 - 10:33.


#8
MihaiwwwA

MihaiwwwA

    Junior Member

  • Grup: Junior Members
  • Posts: 108
  • Înscris: 29.05.2018
Ceva de genu, folosing sum, dar ai vedea doar numarul facturii si valoarea:

SELECT  'Numar Factura', SUM('Valoare Factura')
FROM    tableName
GROUP   BY 'Numar Factura'

#9
MihaiwwwA

MihaiwwwA

    Junior Member

  • Grup: Junior Members
  • Posts: 108
  • Înscris: 29.05.2018
Poti face SUM si pe restul.
Alternativ poti sa te uiti la PARTITION BY impreuna cu OVER, posibil sa fie exact ceea ce vrei. Prezinta cateva avantaje comparativ cu group by si ar trebui sa poti pastra toate coloanele

#10
milovme

milovme

    Member

  • Grup: Members
  • Posts: 814
  • Înscris: 01.11.2012
The WITH statement allows us to perform a separate query
previous_results is the alias that we will use to reference any columns from the query inside of the WITH clause
We can then go on to do whatever we want with this temporary table (such as join the temporary table with another table)
Essentially, we are putting a whole first query inside the parentheses () and giving it a name. After that, we can use this name as if it’s a table and write a new query using the first query.

WITH statement ajuta ? Asta e dintr-un curs ce il am

SELECT customer_id,
   COUNT(subscription_id) AS 'subscriptions'
FROM orders
GROUP BY customer_id;

This query is good, but a customer_id isn’t terribly useful for our marketing department, they probably want to know the customer’s name.
We want to be able to join the results of this query with our customers table, which will tell us the name of each customer. We can do this by using a WITH clause.
WITH previous_results AS (
   SELECT ...
   ...
   ...
   ...
)
SELECT *
FROM previous_results
JOIN customers
  ON _____ = _____;

Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate